#include <bits/stdc++.h>
using namespace std;
const int MAXN = 1e5 + 5;
int n;
long long pts[MAXN][2];
unsigned long long area(int i, int j, int k) {
  return (abs(pts[i][0] * pts[j][1] + pts[j][0] * pts[k][1] +
              pts[k][0] * pts[i][1] - pts[i][1] * pts[j][0] -
              pts[j][1] * pts[k][0] - pts[k][1] * pts[i][0]));
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 0; i < n; ++i) cin >> pts[i][0] >> pts[i][1];
  int x = -1, y = -1;
  long long c = 2e9, d = 2e9;
  for (int i = 0; i < n; ++i) {
    if (pts[i][0] < c) {
      c = pts[i][0], d = pts[i][1], x = i;
    } else if (pts[i][0] == c && pts[i][1] < d) {
      c = pts[i][0], d = pts[i][1], x = i;
    }
  }
  c = 2e9, d = 2e9;
  for (int i = 0; i < n; ++i) {
    if (i == x) continue;
    if (pts[i][0] < c) {
      c = pts[i][0], d = pts[i][1], y = i;
    } else if (pts[i][0] == c && pts[i][1] < d) {
      c = pts[i][0], d = pts[i][1], y = i;
    }
  }
  long long minarea = 6e18;
  int ind = -1;
  for (int i = 0; i < n; ++i) {
    if (i == x || i == y) continue;
    long long a = area(x, y, i);
    if (a == 0) continue;
    if (a < minarea) {
      minarea = a;
      ind = i;
    }
  }
  cout << x + 1 << ' ' << y + 1 << ' ' << ind + 1 << endl;
}
