#include <bits/stdc++.h>
#pragma GCC optimize("O3")
using namespace std;
int n;
struct vec {
  long long x, y, idx;
} a, b;
long double pos_ang_with_x_axis(vec a) {
  long double res = atan2(a.y, a.x) * 180 / acos(-1);
  if (res < 0) res += 360;
  return res;
}
int dot(vec a, vec b) { return a.x * b.x + a.y * b.y; }
long double norm(vec a) { return (long double)sqrt(a.x * a.x + a.y * a.y); }
long double angle(vec a, vec b) {
  long double ang1 = pos_ang_with_x_axis(a);
  long double ang2 = pos_ang_with_x_axis(b);
  return fabs(ang1 - ang2);
}
vector<vec> v;
bool cmp(vec a, vec b) {
  vec c;
  c.x = c.y = 0;
  long double ang1 = pos_ang_with_x_axis(a);
  long double ang2 = pos_ang_with_x_axis(b);
  return ang1 < ang2;
}
int main() {
  ios::sync_with_stdio(0);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> a.x >> a.y;
    a.idx = i + 1;
    v.push_back(a);
  }
  sort(v.begin(), v.end(), cmp);
  int idx1, idx2;
  long double mn = 1e18;
  v.push_back(v[0]);
  for (int i = 1; i <= n; i++) {
    long double d = angle(v[i], v[i - 1]);
    d = min(d, (long double)360 - d);
    if (d < mn) mn = d, idx1 = v[i - 1].idx, idx2 = v[i].idx;
  }
  cout << idx1 << " " << idx2 << endl;
  return 0;
}
