#include <bits/stdc++.h>
using namespace std;
const int INF = (int)1e9 + 7;
const long long LINF = (long long)1e18 + 9;
const int MXN = (int)4e5 + 10;
const double EPS = (double)1e-9;
const double DAUN_PI = acos(-1.0);
pair<int, int> a[MXN];
int n;
int p[MXN];
pair<int, int> res;
long double ans = INF * 1.0;
int operator*(pair<int, int> a, pair<int, int> b) {
  return a.first * b.second - a.second * b.first;
}
int operator%(pair<int, int> a, pair<int, int> b) {
  return a.first * b.first + a.second * b.second;
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; ++i) {
    scanf("%d%d", &a[i].first, &a[i].second);
  }
  for (int i = 0; i < n; ++i) {
    p[i] = i;
  }
  sort(p, p + n, [](int i, int j) {
    return (long double)atan2(a[i].second * 1.0, a[i].first * 1.0) <
           (long double)atan2(a[j].second * 1.0, a[j].first * 1.0);
  });
  p[n] = p[0];
  for (int i = 0; i < n; ++i) {
    long double angle = fabs(
        atan2(1.0 * (a[p[i]] * a[p[i + 1]]), 1.0 * (a[p[i]] % a[p[i + 1]])));
    angle = min(angle, 2.0 * DAUN_PI - angle);
    if (angle < ans) {
      ans = angle;
      res = make_pair(p[i], p[i + 1]);
    }
  }
  printf("%d %d", res.first + 1, res.second + 1);
  return 0;
}
