#include <bits/stdc++.h>
using namespace std;
#define Foreach(i, c) for(__typeof((c).begin()) i = (c).begin(); i != (c).end(); ++i)
#define For(i,a,b) for(int (i)=(a);(i) < (b); ++(i))
#define rof(i,a,b) for(int (i)=(a);(i) > (b); --(i))
#define rep(i, c) for(auto &(i) : (c))
#define x first
#define y second
#define pb push_back
#define PB pop_back()
#define iOS ios_base::sync_with_stdio(false)
#define sqr(a) (((a) * (a)))
#define all(a) a.begin() , a.end()
#define error(x) cerr << #x << " = " << (x) <<endl
#define Error(a,b) cerr<<"( "<<#a<<" , "<<#b<<" ) = ( "<<(a)<<" , "<<(b)<<" )\n";
#define errop(a) cerr<<#a<<" = ( "<<((a).x)<<" , "<<((a).y)<<" )\n";
#define coud(a,b) cout<<fixed << setprecision((b)) << (a)
#define L(x) ((x)<<1)
#define R(x) (((x)<<1)+1)
#define umap unordered_map
//#define max(x,y) ((x) > (y) ? (x) : (y))
#define double long double
typedef long long ll;
typedef pair<int,int>pii;
typedef vector<int> vi;
//typedef complex<double> point;
const int maxn = 1e6 + 100;
map <pii, vi> mp;
const double eps = 1e-22;
struct point{
int X,Y;
double x,y;
point(){
X = Y = x = y = .0;
}
point(double a,double b){
x = a, y = b;
}
inline void init(int a,int b){
X = a, Y = b;
x = 1.0 / X;
y = 1.0 / Y;
}
inline double operator * (point p){
return x * p.y - y * p.x;
}
inline point operator - (point p){
return point(x - p.x, y - p.y);
}
inline double dis(point p){
return sqr(x - p.x) + sqr(y - p.y);
}
inline pii PII(){
return pii(X, Y);
}
};
point o;
point l;
inline bool ocmp(const point &a, const point &b){
return make_pair(a.y, a.x) < make_pair(b.y, b.x);
}
inline bool lcmp(const point &a, const point &b){
return make_pair(a.x, a.y) < make_pair(b.x, b.y);
}
inline bool scmp(const point &a,const point &b){
double cross = ((point)a - o) * ((point)b - o);
if(fabs(cross) <= eps)
return o.dis(a) < o.dis(b);
return cross < eps;
}
vector<point> v;
vector<point> hull;
int n;
int main(){
iOS;
cin >> n;
For(i,0,n){
int a,b;
cin >> a >> b;
mp[{a, b}].pb(i + 1);
}
if(mp.size() == 1){
For(i,1,n+1)
cout << i << ' ';
cout << endl;
return 0;
}
Foreach(q, mp){
pii p = q->x;
int x = p.x, y = p.y;
point P;
P.init(x, y);
v.pb(P);
}
o = *min_element(all(v), ocmp);
l = *min_element(all(v), lcmp);
if(o.PII() == l.PII()){
rep(a, mp[o.PII()])
cout << a << ' ';
cout << endl;
return 0;
}
sort(all(v), scmp);
int po = 2;
For(i,0,2)
hull.pb(v[i]);
vi ans;
while(po < v.size() && hull.back().PII() != l.PII()){
while(hull.size() > 1 && (hull[hull.size()-1] - hull[hull.size()-2]) * (v[po] - hull[hull.size()-2]) > eps)
hull.PB;
hull.pb(v[po++]);
}
rep(p, hull)
rep(a, mp[p.PII()])
ans.pb(a);
sort(all(ans));
rep(a, ans)
cout << a << ' ';
cout << endl;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgRm9yZWFjaChpLCBjKSBmb3IoX190eXBlb2YoKGMpLmJlZ2luKCkpIGkgPSAoYykuYmVnaW4oKTsgaSAhPSAoYykuZW5kKCk7ICsraSkKI2RlZmluZSBGb3IoaSxhLGIpIGZvcihpbnQgKGkpPShhKTsoaSkgPCAoYik7ICsrKGkpKQojZGVmaW5lIHJvZihpLGEsYikgZm9yKGludCAoaSk9KGEpOyhpKSA+IChiKTsgLS0oaSkpCiNkZWZpbmUgcmVwKGksIGMpICBmb3IoYXV0byAmKGkpIDogKGMpKQojZGVmaW5lIHggICAgIGZpcnN0CiNkZWZpbmUgeSAgICAgc2Vjb25kCiNkZWZpbmUgcGIgIHB1c2hfYmFjawojZGVmaW5lIFBCICBwb3BfYmFjaygpCiNkZWZpbmUgaU9TICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKQojZGVmaW5lIHNxcihhKSAgKCgoYSkgKiAoYSkpKQojZGVmaW5lIGFsbChhKSAgYS5iZWdpbigpICwgYS5lbmQoKQojZGVmaW5lIGVycm9yKHgpIGNlcnIgPDwgI3ggPDwgIiA9ICIgPDwgKHgpIDw8ZW5kbAojZGVmaW5lIEVycm9yKGEsYikgY2Vycjw8IiggIjw8I2E8PCIgLCAiPDwjYjw8IiApID0gKCAiPDwoYSk8PCIgLCAiPDwoYik8PCIgKVxuIjsKI2RlZmluZSBlcnJvcChhKSBjZXJyPDwjYTw8IiA9ICggIjw8KChhKS54KTw8IiAsICI8PCgoYSkueSk8PCIgKVxuIjsKI2RlZmluZSBjb3VkKGEsYikgY291dDw8Zml4ZWQgPDwgc2V0cHJlY2lzaW9uKChiKSkgPDwgKGEpCiNkZWZpbmUgTCh4KSAgKCh4KTw8MSkKI2RlZmluZSBSKHgpICAoKCh4KTw8MSkrMSkKI2RlZmluZSB1bWFwICB1bm9yZGVyZWRfbWFwCi8vI2RlZmluZSBtYXgoeCx5KSAgKCh4KSA+ICh5KSA/ICh4KSA6ICh5KSkKI2RlZmluZSBkb3VibGUgbG9uZyBkb3VibGUKdHlwZWRlZiBsb25nIGxvbmcgbGw7CnR5cGVkZWYgcGFpcjxpbnQsaW50PnBpaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKLy90eXBlZGVmIGNvbXBsZXg8ZG91YmxlPiBwb2ludDsKY29uc3QgaW50IG1heG4gPSAxZTYgKyAxMDA7Cm1hcCA8cGlpLCB2aT4gbXA7CmNvbnN0IGRvdWJsZSBlcHMgPSAxZS0yMjsKc3RydWN0IHBvaW50ewoJaW50IFgsWTsKCWRvdWJsZSB4LHk7Cglwb2ludCgpewoJCVggPSBZID0geCA9IHkgPSAuMDsKCX0KCXBvaW50KGRvdWJsZSBhLGRvdWJsZSBiKXsKCQl4ID0gYSwgeSA9IGI7Cgl9CglpbmxpbmUgdm9pZCBpbml0KGludCBhLGludCBiKXsKCQlYID0gYSwgWSA9IGI7CgkJeCA9IDEuMCAvIFg7CgkJeSA9IDEuMCAvIFk7Cgl9CglpbmxpbmUgZG91YmxlIG9wZXJhdG9yICogKHBvaW50IHApewoJCXJldHVybiB4ICogcC55IC0geSAqIHAueDsKCX0KCWlubGluZSBwb2ludCBvcGVyYXRvciAtIChwb2ludCBwKXsKCQlyZXR1cm4gcG9pbnQoeCAtIHAueCwgeSAtIHAueSk7Cgl9CglpbmxpbmUgZG91YmxlIGRpcyhwb2ludCBwKXsKCQlyZXR1cm4gc3FyKHggLSBwLngpICsgc3FyKHkgLSBwLnkpOwoJfQoJaW5saW5lIHBpaSBQSUkoKXsKCQlyZXR1cm4gcGlpKFgsIFkpOwoJfQp9Owpwb2ludCBvOwpwb2ludCBsOwppbmxpbmUgYm9vbCBvY21wKGNvbnN0IHBvaW50ICZhLCBjb25zdCBwb2ludCAmYil7CglyZXR1cm4gbWFrZV9wYWlyKGEueSwgYS54KSA8IG1ha2VfcGFpcihiLnksIGIueCk7Cn0KaW5saW5lIGJvb2wgbGNtcChjb25zdCBwb2ludCAmYSwgY29uc3QgcG9pbnQgJmIpewoJcmV0dXJuIG1ha2VfcGFpcihhLngsIGEueSkgPCBtYWtlX3BhaXIoYi54LCBiLnkpOwp9CmlubGluZSBib29sIHNjbXAoY29uc3QgcG9pbnQgJmEsY29uc3QgcG9pbnQgJmIpewoJZG91YmxlIGNyb3NzID0gKChwb2ludClhIC0gbykgKiAoKHBvaW50KWIgLSBvKTsKCWlmKGZhYnMoY3Jvc3MpIDw9IGVwcykKCQlyZXR1cm4gby5kaXMoYSkgPCBvLmRpcyhiKTsKCXJldHVybiBjcm9zcyA8IGVwczsKfQp2ZWN0b3I8cG9pbnQ+IHY7CnZlY3Rvcjxwb2ludD4gaHVsbDsKaW50IG47CmludCBtYWluKCl7CiAgICBpT1M7CgljaW4gPj4gbjsKCUZvcihpLDAsbil7CgkJaW50IGEsYjsKCQljaW4gPj4gYSA+PiBiOwoJCW1wW3thLCBifV0ucGIoaSArIDEpOwoJfQoJaWYobXAuc2l6ZSgpID09IDEpewoJCUZvcihpLDEsbisxKQoJCQljb3V0IDw8IGkgPDwgJyAnOwoJCWNvdXQgPDwgZW5kbDsKCQlyZXR1cm4gMDsKCX0KCUZvcmVhY2gocSwgbXApewoJCXBpaSBwID0gcS0+eDsKCQlpbnQgeCA9IHAueCwgeSA9IHAueTsKCQlwb2ludCBQOwoJCVAuaW5pdCh4LCB5KTsKCQl2LnBiKFApOwoJfQoJbyA9ICptaW5fZWxlbWVudChhbGwodiksIG9jbXApOwoJbCA9ICptaW5fZWxlbWVudChhbGwodiksIGxjbXApOwoJaWYoby5QSUkoKSA9PSBsLlBJSSgpKXsKCQlyZXAoYSwgbXBbby5QSUkoKV0pCgkJCWNvdXQgPDwgYSA8PCAnICc7CgkJY291dCA8PCBlbmRsOwoJCXJldHVybiAwOwoJfQoJc29ydChhbGwodiksIHNjbXApOwoJaW50IHBvID0gMjsKCUZvcihpLDAsMikKCQlodWxsLnBiKHZbaV0pOwoJdmkgYW5zOwoJd2hpbGUocG8gPCB2LnNpemUoKSAmJiBodWxsLmJhY2soKS5QSUkoKSAhPSBsLlBJSSgpKXsKCQl3aGlsZShodWxsLnNpemUoKSA+IDEgJiYgKGh1bGxbaHVsbC5zaXplKCktMV0gLSBodWxsW2h1bGwuc2l6ZSgpLTJdKSAqICh2W3BvXSAtIGh1bGxbaHVsbC5zaXplKCktMl0pID4gZXBzKQoJCQlodWxsLlBCOwoJCWh1bGwucGIodltwbysrXSk7Cgl9CglyZXAocCwgaHVsbCkKCQlyZXAoYSwgbXBbcC5QSUkoKV0pCgkJCWFucy5wYihhKTsKCXNvcnQoYWxsKGFucykpOwoJcmVwKGEsIGFucykKCQljb3V0IDw8IGEgPDwgJyAnOwoJY291dCA8PCBlbmRsOwoJCn0K