const
  maxn = 100;

var
  s, ds, s1, s2, min : int64;
  x, y : array[1..maxn] of int64;
  i, j, n, ans1, ans2, dx1, dx2, dy1, dy2 : integer;
begin
  reset(input, 'cakecut.in');
  rewrite(output, 'cakecut.out');
  read(n);
  assert((4 <= n) and (n <= maxn));
  for i := 1 to n do begin
    read(x[i], y[i]);
    assert(abs(x[i]) <= 1000);
    assert(abs(y[i]) <= 1000);
  end;
  s := 0;
  for i := 1 to n do begin
    s := s + x[i] * y[i mod n + 1] - y[i] * x[i mod n + 1];
  end;
  assert(s > 0);
  for i := 1 to n do begin
    dx1 := x[i mod n + 1] - x[i];
    dy1 := y[i mod n + 1] - y[i];
    dx2 := x[(i + 1) mod n + 1] - x[i];
    dy2 := y[(i + 1) mod n + 1] - y[i];
    assert(dx1 * dy2 - dy1 * dx2 > 0);
  end;
  s2 := s;
  s1 := 0;
  j := 1;
  min := 2 * s;
  ans1 := 1;
  ans2 := 1;
  for i := 1 to n do begin
    ds := 0;
    while (s2 > s1) do begin
      ds := (x[j] - x[i]) * (y[j mod n + 1] - y[i]) - (y[j] - y[i]) * (x[j mod n + 1] - x[i]);
      s2 := s2 - ds;
      s1 := s1 + ds;
      j := j mod n + 1;
    end;
    if (s1 - s2 < min) then begin
      min := s1 - s2;
      ans1 := i;
      ans2 := j;
    end;
    if (s2 + 2 * ds - s1 < min) and (s2 + 2 * ds - s1 > 0) then begin
      min := s2 + 2 * ds - s1;
      ans1 := i;
      ans2 := (j + n - 2) mod n + 1;
    end;
    ds := (x[i] - x[j]) * (y[i mod n + 1] - y[j]) - (y[i] - y[j]) * (x[i mod n + 1] - x[j]);
    s1 := s1 - ds;
    s2 := s2 + ds;
  end;
  writeln(ans1, ' ', ans2);
end.