#include<iostream>
#include<algorithm>
using namespace std;
struct node
{
int x;
int y;
int ss;
}Enum[100005];
double xielv(node a, node b)
{
if(a.x == b.x)
return 0;
else
return double((a.y - b.y) / (a.x - b.x));
}
bool cmp(node a, node b)
{
if(a.x == b.x)
return a.y < b.y;
return a.x > b.x;
}
int main()
{
int n;
while(cin >> n)
{
double MAX = -0x3f3f3f3f;
int T;
for(int i = 0; i < n; i++)
{
cin >> Enum[i].x >> Enum[i].y;
Enum[i].ss = i;
}
sort(Enum, Enum + n, cmp);
for(int i = 1; i < n; i++)
{
double K = xielv(Enum[0], Enum[i]);
if(K > MAX)
{
MAX = K;
T = Enum[i].ss;
}
}
cout << Enum[0].ss + 1 << " " << T + 1 << endl;
}
return 0;
}
据说还有一个凸包算法, 可是真心不会