#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;
#define int ll
typedef pair<ll,ll>pii;
typedef vector<int> vi;
//typedef complex<double> point;
const int maxn = 1e6 + 100;
map <pii, vi> mp;
struct point{
ll x,y;
point(){
x = y = 0;
}
point(ll a,ll b){
x = a, y = b;
}
inline void init(ll a,ll b){
x = a, y = b;
}
inline point operator - (point p){
return point(x - p.x, y - p.y);
}
inline ll dis(point p){
return sqr(x - p.x) + sqr(y - p.y);
}
inline pii PII(){
return pii(x, y);
}
};
inline ll CROSS(point o, point a,point b){
return (a.y * b.x * o.x * o.y - a.y * o.x * b.x * b.y - o.y * b.x * a.x * a.y + a.x * b.x * a.y * b.y) -
(a.x * b.y * o.x * o.y - a.x * o.y * b.x * b.y - o.x * b.y * a.x * a.y + a.x * b.x * a.y * b.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){
ll cross = CROSS(o, a, b);
if(!cross)
return o.dis(a) < o.dis(b);
return cross < 0;
}
vector<point> v;
vector<point> hull;
int n;
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 && CROSS(hull[hull.size()-2], hull[hull.size()-1], v[po]) > 0LL)
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/ICh4KSA6ICh5KSkKLy8jZGVmaW5lIGRvdWJsZSBsb25nIGRvdWJsZQp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKI2RlZmluZSBpbnQgbGwKdHlwZWRlZiBwYWlyPGxsLGxsPnBpaTsKdHlwZWRlZiB2ZWN0b3I8aW50PiB2aTsKLy90eXBlZGVmIGNvbXBsZXg8ZG91YmxlPiBwb2ludDsKY29uc3QgaW50IG1heG4gPSAxZTYgKyAxMDA7Cm1hcCA8cGlpLCB2aT4gbXA7CnN0cnVjdCBwb2ludHsKCWxsIHgseTsKCXBvaW50KCl7CgkgCXggPSB5ID0gMDsKCX0KCXBvaW50KGxsIGEsbGwgYil7CgkJeCA9IGEsIHkgPSBiOwoJfQoJaW5saW5lIHZvaWQgaW5pdChsbCBhLGxsIGIpewoJCXggPSBhLCB5ID0gYjsKCX0KCWlubGluZSBwb2ludCBvcGVyYXRvciAtIChwb2ludCBwKXsKCQlyZXR1cm4gcG9pbnQoeCAtIHAueCwgeSAtIHAueSk7Cgl9CglpbmxpbmUgbGwgZGlzKHBvaW50IHApewoJCXJldHVybiBzcXIoeCAtIHAueCkgKyBzcXIoeSAtIHAueSk7Cgl9CglpbmxpbmUgcGlpIFBJSSgpewoJCXJldHVybiBwaWkoeCwgeSk7Cgl9Cn07CmlubGluZSBsbCBDUk9TUyhwb2ludCBvLCBwb2ludCBhLHBvaW50IGIpewoJcmV0dXJuIChhLnkgKiBiLnggKiBvLnggKiBvLnkgLSBhLnkgKiBvLnggKiBiLnggKiBiLnkgLSBvLnkgKiBiLnggKiBhLnggKiBhLnkgKyBhLnggKiBiLnggKiBhLnkgKiBiLnkpIC0gCgkJKGEueCAqIGIueSAqIG8ueCAqIG8ueSAtIGEueCAqIG8ueSAqIGIueCAqIGIueSAtIG8ueCAqIGIueSAqIGEueCAqIGEueSArIGEueCAqIGIueCAqIGEueSAqIGIueSk7Cn0KcG9pbnQgbzsKcG9pbnQgbDsKaW5saW5lIGJvb2wgb2NtcChjb25zdCBwb2ludCAmYSwgY29uc3QgcG9pbnQgJmIpewoJcmV0dXJuIG1ha2VfcGFpcihhLnksIGEueCkgPiBtYWtlX3BhaXIoYi55LCBiLngpOwp9CmlubGluZSBib29sIGxjbXAoY29uc3QgcG9pbnQgJmEsIGNvbnN0IHBvaW50ICZiKXsKCXJldHVybiBtYWtlX3BhaXIoYS54LCBhLnkpID4gbWFrZV9wYWlyKGIueCwgYi55KTsKfQppbmxpbmUgYm9vbCBzY21wKGNvbnN0IHBvaW50ICZhLGNvbnN0IHBvaW50ICZiKXsKCWxsIGNyb3NzID0gQ1JPU1MobywgYSwgYik7CglpZighY3Jvc3MpCgkJcmV0dXJuIG8uZGlzKGEpIDwgby5kaXMoYik7CglyZXR1cm4gY3Jvc3MgPCAwOwp9CnZlY3Rvcjxwb2ludD4gdjsKdmVjdG9yPHBvaW50PiBodWxsOwppbnQgbjsKbWFpbigpewogICAgaU9TOwoJY2luID4+IG47CglGb3IoaSwwLG4pewoJCWludCBhLGI7CgkJY2luID4+IGEgPj4gYjsKCQltcFt7YSwgYn1dLnBiKGkgKyAxKTsKCX0KCWlmKG1wLnNpemUoKSA9PSAxKXsKCQlGb3IoaSwxLG4rMSkKCQkJY291dCA8PCBpIDw8ICcgJzsKCQljb3V0IDw8IGVuZGw7CgkJcmV0dXJuIDA7Cgl9CglGb3JlYWNoKHEsIG1wKXsKCQlwaWkgcCA9IHEtPng7CgkJaW50IHggPSBwLngsIHkgPSBwLnk7CgkJcG9pbnQgUDsKCQlQLmluaXQoeCwgeSk7CgkJdi5wYihQKTsKCX0KCW8gPSAqbWluX2VsZW1lbnQoYWxsKHYpLCBvY21wKTsKCWwgPSAqbWluX2VsZW1lbnQoYWxsKHYpLCBsY21wKTsKCWlmKG8uUElJKCkgPT0gbC5QSUkoKSl7CgkJcmVwKGEsIG1wW28uUElJKCldKQoJCQljb3V0IDw8IGEgPDwgJyAnOwoJCWNvdXQgPDwgZW5kbDsKCQlyZXR1cm4gMDsKCX0KCXNvcnQoYWxsKHYpLCBzY21wKTsKCWludCBwbyA9IDI7CglGb3IoaSwwLDIpCgkJaHVsbC5wYih2W2ldKTsKCXZpIGFuczsKCXdoaWxlKHBvIDwgdi5zaXplKCkgJiYgaHVsbC5iYWNrKCkuUElJKCkgIT0gbC5QSUkoKSl7CgkJd2hpbGUoaHVsbC5zaXplKCkgPiAxICYmIENST1NTKGh1bGxbaHVsbC5zaXplKCktMl0sIGh1bGxbaHVsbC5zaXplKCktMV0sIHZbcG9dKSA+IDBMTCkKCQkJaHVsbC5QQjsKCQlodWxsLnBiKHZbcG8rK10pOwoJfQoJcmVwKHAsIGh1bGwpCgkJcmVwKGEsIG1wW3AuUElJKCldKQoJCQlhbnMucGIoYSk7Cglzb3J0KGFsbChhbnMpKTsKCXJlcChhLCBhbnMpCgkJY291dCA8PCBhIDw8ICcgJzsKCWNvdXQgPDwgZW5kbDsKCQp9Cg==