#include <bits/stdc++.h>
using namespace std;
struct Point {
  long long x, y;
  int id;
};
long long judge(Point p0, Point p1, Point p2) {
  return (p1.x - p0.x) * (p2.y - p1.y) - (p2.x - p1.x) * (p1.y - p0.y);
}
long long cmp(Point a, Point b) {
  if (a.x == b.x) return a.y < b.y;
  return a.x < b.x;
}
Point s[100005];
int main() {
  int n;
  while (~scanf("%d", &n)) {
    for (int i = 1; i <= n; i++)
      scanf("%lld%lld", &s[i].x, &s[i].y), s[i].id = i;
    sort(s + 1, s + 1 + n, cmp);
    int flag, ans;
    int a = 0, b = 0, c = 0;
    for (int i = 3; i <= n; i++) {
      flag = 0, ans = 0;
      if (judge(s[1], s[2], s[i]) == 0) ans++;
      if (ans == 0) {
        a = s[1].id, b = s[2].id, c = s[i].id;
        flag = 1;
        break;
      }
    }
    printf("%d %d %d\n", a, b, c);
  }
  return 0;
}
