#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 7;
const long double PI = acos(-1);
pair<int, int> vec[MAXN];
pair<int, long double> orz[MAXN];
bool cmp(const pair<int, long double> &v1, const pair<int, long double> &v2) {
  if (v1.second != v2.second) return v1.second < v2.second;
  return v1.first < v2.first;
}
int main() {
  int n;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &vec[i].first, &vec[i].second);
  }
  for (int i = 1; i <= n; i++) {
    orz[i].first = i;
    orz[i].second = atan2(vec[i].second, vec[i].first);
    if (orz[i].second < 0) orz[i].second += 2 * PI;
  }
  sort(orz + 1, orz + n + 1, cmp);
  pair<int, int> res = {orz[1].first, orz[n].first};
  long double min_orz = orz[1].second + 2 * PI - orz[n].second;
  for (int i = 2; i <= n; i++) {
    if (orz[i].second - orz[i - 1].second < min_orz) {
      res = {orz[i - 1].first, orz[i].first};
      min_orz = orz[i].second - orz[i - 1].second;
    }
  }
  printf("%d %d\n", res.first, res.second);
  return 0;
}
