#include <cstdio>
#include <vector>
#include <stack>
#include <algorithm>
using namespace std;

typedef long long ll;

const int N = 200005;

ll xmult(ll x1, ll y1, ll x2, ll y2) {
    return x1*y2-x2*y1;
}

int n, ma[N];
ll m[N], v[N], sm[N], sv[N];

int main() {
    while(1==scanf("%d", &n) && n) {
        for(int mi, vi, i = 0; i < n; ++i) {
            scanf("%d%d", &mi, &vi);
            m[i] = mi; v[i] = vi;
        }
        if(n <= 2) {
            puts("0");
            continue;
        }
        vector<int> st;
        sm[n] = sv[n] = 0;
        for(int i = n-1; i >= 0; --i) {
            sm[i] = sm[i+1] + m[i];
            sv[i] = sv[i+1] + v[i];
            while(st.size() > 1) {
                int x = st[st.size()-1];
                int y = st[st.size()-2];
                ll dm = m[y] - m[x];
                ll dv = v[y] - v[x];
                if(xmult(dv, dm, sv[i], sm[i]) >= 0) {
                    st.pop_back();
                } else {
                    break;
                }
            }
            if(st.empty()) {
                st.push_back(i);
            } else {
                int x = st.back();
                ll m1 = m[i] - m[x];
                ll v1 = v[i] - v[x];
                bool addi = true, popx = false;
                if(xmult(v1, m1, sv[i], sm[i]) <= 0) {
                    st.pop_back();
                    popx = true;
                    if(!st.empty()) {
                        int y = st.back();
                        ll m2 = m[y] - m[x];
                        ll v2 = v[y] - v[x];
                        if(xmult(v1, m1, v2, m2) >= 0) {
                            addi = false;
                        }
                    }
                }
                if(addi) {
                    while(st.size() > 1) {
                        int x = st[st.size()-1];
                        int y = st[st.size()-2];
                        ll mx = m[x] - m[i];
                        ll vx = v[x] - v[i];
                        ll my = m[y] - m[i];
                        ll vy = v[y] - v[i];
                        if(xmult(vx, mx, vy, my) >= 0) {
                            st.pop_back();
                        } else {
                            break;
                        }
                    }
                    st.push_back(i);
                }
                if(popx) st.push_back(x);
            }
            ma[i] = st.back();
        }
        st.clear();
        vector<int> ans;
        for(int i = 0; i < n-1; ++i) {
            while(st.size() > 1) {
                int x = st[st.size()-1];
                int y = st[st.size()-2];
                ll dm = m[y] - m[x];
                ll dv = v[y] - v[x];
                if(xmult(dv, dm, sv[i+1], sm[i+1]) <= 0) {
                    st.pop_back();
                } else {
                    break;
                }
            }
            if(st.empty()) {
                st.push_back(i);
            } else {
                int x = st.back();
                ll m1 = m[i] - m[x];
                ll v1 = v[i] - v[x];
                bool addi = true, popx = false;
                if(xmult(v1, m1, sv[i+1], sm[i+1]) >= 0) {
                    st.pop_back();
                    popx = true;
                    if(!st.empty()) {
                        int y = st.back();
                        ll m2 = m[y] - m[x];
                        ll v2 = v[y] - v[x];
                        if(xmult(v1, m1, v2, m2) <= 0) {
                            addi = false;
                        }
                    }
                }
                if(addi) {
                    while(st.size() > 1) {
                        int x = st[st.size()-1];
                        int y = st[st.size()-2];
                        ll mx = m[x] - m[i];
                        ll vx = v[x] - v[i];
                        ll my = m[y] - m[i];
                        ll vy = v[y] - v[i];
                        if(xmult(vx, mx, vy, my) <= 0) {
                            st.pop_back();
                        } else {
                            break;
                        }
                    }
                    st.push_back(i);
                }
                if(popx) st.push_back(x);
            }
            int mi = st.back();
            ll dm = m[ma[i+1]] - m[mi];
            ll dv = v[ma[i+1]] - v[mi];
            if(xmult(dv, dm, sv[i+1], sm[i+1]) > 0) {
                ans.push_back(i+1);
            }
        }
        printf("%d\n", ans.size());
        for(size_t i = 0; i < ans.size(); ++i) {
            printf("%d\n", ans[i]);
        }
    }
}
