#include <bits/stdc++.h>
using namespace std;
struct node {
  long long x, y;
  int id;
  bool operator<(const node& b) const {
    if (y != b.y)
      return y < b.y;
    else
      return x < b.x;
  }
} a[210000], b[210000], c, d[210000];
vector<node> q;
int n, num, last;
int ans[210000];
set<node> s;
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++)
    cin >> a[i].x >> a[i].y, a[i].id = i, d[i] = a[i];
  sort(a + 1, a + 1 + n);
  for (int i = n; i >= 1; i--)
    if (a[i].x > last) last = a[i].x, b[++num] = a[i];
  reverse(b + 1, b + 1 + num);
  for (int i = 1; i <= num; i++) {
    while (q.size() > 1) {
      node c = q[q.size() - 1], d = q[q.size() - 2];
      if ((c.y - d.y) * d.x * b[i].y * (c.x - b[i].x) <
          (b[i].y - c.y) * b[i].x * d.y * (d.x - c.x))
        q.pop_back();
      else
        break;
    }
    q.push_back(b[i]);
  }
  num = 0;
  for (int i = 0; i < q.size(); i++) s.insert(q[i]);
  for (int i = 1; i <= n; i++)
    if (s.count(d[i])) printf("%d ", i);
  return 0;
}
