#include <bits/stdc++.h>
using namespace std;
struct Node {
  long double angle;
  int index;
} Point[100500];
int n;
long double myatan(long double y, long double x) {
  long double t = atan2(y, x);
  return t >= 0 ? t : 2 * acos(-1.0) + t;
}
bool cmp(Node aa, Node bb) { return aa.angle < bb.angle; }
int main() {
  int i, j;
  int x, y;
  int ans1, ans2;
  long double mini;
  scanf("%d", &n);
  for (i = 0; i < n; i++) {
    scanf("%d %d", &x, &y);
    Point[i].angle = myatan(y, x);
    Point[i].index = i + 1;
  }
  sort(Point, Point + n, cmp);
  mini = Point[0].angle + 2 * acos(-1.0) - Point[n - 1].angle;
  ans1 = Point[0].index;
  ans2 = Point[n - 1].index;
  for (i = 0; i < n - 1; i++) {
    if (Point[i + 1].angle - Point[i].angle < mini) {
      mini = Point[i + 1].angle - Point[i].angle;
      ans1 = Point[i].index;
      ans2 = Point[i + 1].index;
    }
  }
  printf("%d %d\n", ans1, ans2);
  return 0;
}
