#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long x, y, index;
  double angle;
};
Point x[200005];
int n;
bool cmp(Point pr, Point dr) {
  if (pr.angle == dr.angle) {
    if (abs(pr.x - x[1].x) < abs(dr.x - x[1].x)) return 1;
    if (abs(pr.y - x[1].y) < abs(dr.y - x[1].y)) return 1;
    return 0;
  }
  if (pr.angle < dr.angle) return 1;
  return 0;
}
double getAngle(Point pr, Point dr) {
  double ans = atan2((dr.y - pr.y), (dr.x - pr.x));
  if (ans < 0) ans = ans + 2 * 3.1416;
  return ans;
}
int main() {
  scanf("%d", &n);
  int a, b;
  Point pr, dr;
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", &a, &b);
    if (i == 1) {
      x[1].x = a;
      x[1].y = b;
    } else {
      x[i].x = a;
      x[i].y = b;
      x[i].angle = getAngle(x[1], x[i]);
    }
    x[i].index = i;
  }
  sort(x + 2, x + n + 1, cmp);
  cout << 1 << " ";
  int i = 3;
  cout << x[2].index << " ";
  while ((x[i].x - x[1].x) * (x[2].y - x[1].y) ==
         (x[i].y - x[1].y) * (x[2].x - x[1].x))
    i++;
  cout << x[i].index << endl;
}
