#include <bits/stdc++.h>
using namespace std;
struct nazi {
  long double x, y, goc;
  long id;
};
bool cmp1(nazi a, nazi b) { return (a.y / a.x) < (b.y / b.x); }
bool cmp2(nazi a, nazi b) { return (-a.x / a.y) < (-b.x / b.y); }
bool cmp3(nazi a, nazi b) { return (a.y / a.x) < (b.y / b.x); }
bool cmp4(nazi a, nazi b) { return (a.x / -a.y) < (b.x / -b.y); }
long double angle(nazi a, nazi b) {
  long double dm1 = max(a.goc, b.goc);
  long double dm2 = min(a.goc, b.goc);
  long double dm3 = dm1 - dm2;
  return min(dm3, 360.0 - dm3);
}
long n, ans1, ans2, cnt = 0;
long double mn = 1e9;
nazi vec[100005], sorted[100005];
vector<nazi> gpt1, gpt2, gpt3, gpt4;
int main() {
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> vec[i].x >> vec[i].y;
    vec[i].id = i;
    if (vec[i].x > 0 && vec[i].y >= 0) {
      gpt1.push_back(vec[i]);
    }
    if (vec[i].x <= 0 && vec[i].y > 0) {
      gpt2.push_back(vec[i]);
    }
    if (vec[i].x < 0 && vec[i].y <= 0) {
      gpt3.push_back(vec[i]);
    }
    if (vec[i].x >= 0 && vec[i].y < 0) {
      gpt4.push_back(vec[i]);
    }
  }
  sort(gpt1.begin(), gpt1.end(), cmp1);
  sort(gpt2.begin(), gpt2.end(), cmp2);
  sort(gpt3.begin(), gpt3.end(), cmp3);
  sort(gpt4.begin(), gpt4.end(), cmp4);
  for (int i = 0; i < gpt1.size(); i++) {
    cnt++;
    sorted[cnt] = gpt1[i];
    sorted[cnt].goc = atan(gpt1[i].y / gpt1[i].x) * (180.0 / 3.1415926535897);
  }
  for (int i = 0; i < gpt2.size(); i++) {
    cnt++;
    sorted[cnt] = gpt2[i];
    sorted[cnt].goc =
        atan(-gpt2[i].x / gpt2[i].y) * (180.0 / 3.1415926535897) + 90;
  }
  for (int i = 0; i < gpt3.size(); i++) {
    cnt++;
    sorted[cnt] = gpt3[i];
    sorted[cnt].goc =
        atan(gpt3[i].y / gpt3[i].x) * (180.0 / 3.1415926535897) + 180;
  }
  for (int i = 0; i < gpt4.size(); i++) {
    cnt++;
    sorted[cnt] = gpt4[i];
    sorted[cnt].goc =
        atan(gpt4[i].x / -gpt4[i].y) * (180.0 / 3.1415926535897) + 270;
  }
  for (int i = 1; i < n; i++) {
    if (angle(sorted[i], sorted[i + 1]) < mn) {
      mn = angle(sorted[i], sorted[i + 1]);
      ans1 = sorted[i].id;
      ans2 = sorted[i + 1].id;
    }
  }
  if (angle(sorted[n], sorted[1]) < mn) {
    mn = angle(sorted[n], sorted[1]);
    ans1 = sorted[n].id;
    ans2 = sorted[1].id;
  }
  cout << ans1 << " " << ans2;
}
