#include <bits/stdc++.h>
using namespace std;
struct point {
  int x, y, idx;
  long double at;
  bool operator<(const point &other) const { return at < other.at; }
};
point p[123123];
int main() {
  int n;
  scanf("%d\n", &n);
  for (auto(i) = (0); (i) < (n); (i)++) {
    int a, b;
    scanf("%d %d\n", &a, &b);
    p[i].x = a;
    p[i].y = b;
    p[i].idx = i;
    p[i].at = atan2(b, a);
  }
  sort(p, p + n);
  long double kek = 123123;
  int good1, good2;
  for (auto(i) = (1); (i) < (n); (i)++) {
    if (kek - p[i].at + p[i - 1].at > 1e-21) {
      kek = p[i].at - p[i - 1].at;
      good1 = p[i - 1].idx;
      good2 = p[i].idx;
    }
  }
  p[0].at += 2 * 3.1415926535897932384;
  if (kek - p[0].at + p[n - 1].at > 1e-21) {
    good1 = p[0].idx;
    good2 = p[n - 1].idx;
  }
  printf("%d %d\n", good1 + 1, good2 + 1);
  return 0;
}
