#include <bits/stdc++.h>
const long double inf = 1e22 + 5;
const long long linf = 5e18 + 5;
const long double eps = 1e-9;
const long long dd = 1e5 + 7;
const long long maxn = 2e3 + 10;
const long long mod = 1e9 + 7;
using namespace std;
vector<pair<pair<long double, long double>, int> > qwe;
bool cmp(pair<pair<long double, long double>, int> a,
         pair<pair<long double, long double>, int> b) {
  long double aa = atan2(a.first.first, a.first.second);
  long double bb = atan2(b.first.first, b.first.second);
  return aa < bb;
}
int main() {
  ios_base::sync_with_stdio(0);
  if (0) {
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
  } else {
    if (!01) {
      freopen(
          "sufpref"
          ".in",
          "r", stdin);
      freopen(
          "sufpref"
          ".out",
          "w", stdout);
    }
  }
  int n;
  cin >> n;
  for (long long i = 0; i < n; ++i) {
    long double x, y;
    cin >> x >> y;
    qwe.push_back(make_pair(make_pair(x, y), i));
  }
  sort(qwe.begin(), qwe.end(), cmp);
  pair<int, int> ans = make_pair(0, 1);
  long double ung = linf;
  for (long long i = 0; i < n; ++i) {
    long double u1 = atan2(qwe[i].first.first, qwe[i].first.second);
    long double u2 =
        atan2(qwe[(i + 1) % n].first.first, qwe[(i + 1) % n].first.second);
    long double unow =
        (qwe[i].first.first * qwe[(i + 1) % n].first.first +
         qwe[i].first.second * qwe[(i + 1) % n].first.second) /
        hypot(qwe[i].first.first, qwe[i].first.second) /
        hypot(qwe[(i + 1) % n].first.first, qwe[(i + 1) % n].first.second);
    unow = acos(unow);
    unow = min(abs(u1 - u2), 2 * acos(-1) - abs(u1 - u2));
    if (unow < ung) {
      ung = unow;
      ans = make_pair(i, (i + 1) % n);
    }
  }
  cout << qwe[ans.first].second + 1 << ' ' << qwe[ans.second].second + 1;
  return 0;
}
