#include <iostream>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
// Cấu trúc dữ liệu lưu trữ một điểm
struct Point {
int x, y, id; // Tọa độ của điểm và chỉ số ban đầu
};
// Hàm tính cross product (tích có hướng) giữa ba điểm a, b, c
// Cross product giúp xác định vị trí tương đối của điểm c so với đường thẳng a-b
long long crossProduct(const Point& a, const Point& b, const Point& c) {
return (long long)(b.x - a.x) * (c.y - a.y) - (long long)(b.y - a.y) * (c.x - a.x);
}
// Hàm tính góc cực giữa điểm a (gốc) và điểm b
// Góc cực là giá trị góc (theo radian) giữa trục x dương và đoạn thẳng a-b
double polarAngle(const Point& a, const Point& b) {
return atan2(b.y - a.y, b.x - a.x);
}
int main() {
int n; // Số lượng điểm
cin >> n;
vector<Point> points(n);
// Nhập tọa độ các điểm
for (int i = 0; i < n; ++i) {
cin >> points[i].x >> points[i].y;
points[i].id = i + 1; // Lưu chỉ số của điểm (bắt đầu từ 1)
}
// Duyệt qua từng điểm để xét làm điểm gốc (pivot point)
for (int i = 0; i < n; ++i) {
// Danh sách các điểm còn lại (không tính điểm gốc)
vector<Point> others;
// Tạo danh sách các điểm khác điểm gốc
for (int j = 0; j < n; ++j) {
if (i != j) others.push_back(points[j]);
}
// Sắp xếp các điểm theo góc cực so với điểm gốc points[i]
sort(others.begin(), others.end(), [&](const Point& a, const Point& b) {
return polarAngle(points[i], a) < polarAngle(points[i], b);
});
// Sử dụng kỹ thuật quét góc để đếm số điểm ở mỗi phía
// Số điểm bên trái đường thẳng
int leftCount = 0;
// Số điểm bên phải đường thẳng
// (ban đầu là tất cả các điểm trừ điểm gốc và điểm đang xét)
int rightCount = n - 2;
for (int j = 0; j < others.size(); ++j) {
// Nếu số điểm ở hai phía bằng nhau, in kết quả và thoát chương trình
if (leftCount == rightCount) {
cout << points[i].id << " " << others[j].id << endl;
return 0;
}
// Di chuyển cửa sổ: cập nhật số lượng điểm ở hai phía khi xét đến điểm tiếp theo
// Sử dụng cross product để xác định điểm others[j+1] nằm ở phía nào
if (crossProduct(points[i], others[j], others[(j + 1) % others.size()]) > 0) {
leftCount++; // Điểm mới thêm vào phía bên trái
rightCount--; // Điểm bớt đi từ phía bên phải
} else {
leftCount--; // Điểm bớt đi từ phía bên trái
rightCount++; // Điểm thêm vào phía bên phải
}
}
}
return 0;
}