#include <bits/stdc++.h>
using namespace std;
int n;
long long x[100000];
long long y[100000];
long long INF = 1LL << 62;
long long sqr(long long x) { return x * x; }
long long getSqrDist(int i, int j) {
  return sqr(x[i] - x[j]) + sqr(y[i] - y[j]);
}
long long mul(long long x1, long long y1, long long x2, long long y2) {
  return x1 * y2 - y1 * x2;
}
long long getSqr(int pt1, int pt2, int pt3) {
  return mul(x[pt2] - x[pt1], y[pt2] - y[pt1], x[pt3] - x[pt1],
             y[pt3] - y[pt1]);
}
void solve(int fs, int sn) {
  long long minSqr = INF;
  int currMinInd = -1;
  for (int i = 0; i < n; i++) {
    if (i == fs || i == sn) continue;
    long long currSqr = abs(getSqr(fs, sn, i));
    if (currSqr == 0) continue;
    if (currSqr < minSqr) {
      minSqr = currSqr;
      currMinInd = i;
    }
  }
  cout << fs + 1 << " " << sn + 1 << " " << currMinInd + 1;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> x[i] >> y[i];
  }
  int currMinInd = -1;
  long long currMin = INF;
  for (int i = 1; i < n; i++) {
    long long dist = getSqrDist(0, i);
    if (dist < currMin) {
      currMin = dist;
      currMinInd = i;
    }
  }
  solve(0, currMinInd);
  return 0;
}
