#include <bits/stdc++.h>
using namespace std;
pair<long long, long long> intersect(pair<long long, long long> a,
                                     pair<long long, long long> b) {
  return make_pair(a.first * (b.second - a.second),
                   a.second * (b.first - a.first));
}
bool check(pair<long long, long long> a, pair<long long, long long> b) {
  return (a.first * b.second > a.second * b.first);
}
int main() {
  int n;
  cin >> n;
  map<pair<long long, long long>, set<int> > q;
  vector<pair<long long, long long> > v(n), w;
  for (int i = 0; i < n; i++) {
    cin >> v[i].first >> v[i].second;
    q[v[i]].insert(i);
  }
  sort(v.begin(), v.end());
  for (int i = 0; i < (int)v.size(); i++) {
    while (!w.empty() && w.back().second <= v[i].second) w.pop_back();
    w.push_back(v[i]);
  }
  v = w;
  w.clear();
  for (int i = 0; i < (int)v.size(); i++) {
    while (w.size() > 1 && check(intersect(w[w.size() - 2], w.back()),
                                 intersect(v[i], w.back())))
      w.pop_back();
    w.push_back(v[i]);
  }
  set<int> ans;
  for (auto &p : w) {
    if (q.count(p)) {
      for (auto &t : q[p]) ans.insert(t);
    }
  }
  for (auto &p : ans) {
    cout << p + 1 << " ";
  }
}
