#include <bits/stdc++.h>
using namespace std;
const long long inf = 2000000000000000000LL;
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long t, n, m, i, j, k, l, flag, len, shit, q, res, ans, p, d;
  cin >> n;
  long double temp;
  vector<pair<long double, long long> > v;
  for (i = 1; i <= n; i++) {
    cin >> j >> k;
    long double x = (long double)j, y = (long double)k;
    if (j == 0 && k >= 0) {
      v.push_back({90.0, i});
    } else if (j == 0 && k < 0) {
      v.push_back({270.0, i});
    } else if (j >= 0 && k >= 0) {
      temp = atan(abs(y) / abs(x));
      temp *= (180.0 / acos(-1.0));
      v.push_back({temp, i});
    } else if (j < 0 && k >= 0) {
      temp = atan(abs(y) / abs(x));
      temp *= (180.0 / acos(-1.0));
      temp = 180.0 - temp;
      v.push_back({temp, i});
    } else if (j < 0 && k < 0) {
      temp = atan(abs(y) / abs(x));
      temp *= (180.0 / acos(-1.0));
      temp = 180.0 + temp;
      v.push_back({temp, i});
    } else {
      temp = atan(abs(y) / abs(x));
      temp *= (180.0 / acos(-1.0));
      temp = 360.0 - temp;
      v.push_back({temp, i});
    }
  }
  sort(v.begin(), v.end());
  temp =
      min(v[n - 1].first - v[0].first, 360.0 - (v[n - 1].first - v[0].first));
  long long u = v[n - 1].second, V = v[0].second;
  for (i = 0; i < v.size() - 1; i++) {
    long double wow =
        min(v[i + 1].first - v[i].first, 360.0 - (v[i + 1].first - v[i].first));
    if (wow < temp) {
      temp = wow;
      u = v[i].second;
      V = v[i + 1].second;
    }
  }
  cout << u << " " << V;
}
