#include <bits/stdc++.h>
using namespace std;
double d(int x, int y, int di);
int main() {
  long long x;
  cin >> x;
  pair<long long, long long> arr[x];
  double mele;
  double arrdis1[x];
  cin >> arr[0].first;
  cin >> arr[0].second;
  priority_queue<pair<double, int>, vector<pair<double, int> >,
                 greater<pair<double, int> > >
      pq;
  for (long long i = 1; i < x; i++) {
    cin >> arr[i].first;
    cin >> arr[i].second;
    arrdis1[i] = pow(arr[0].first - arr[i].first, 2) +
                 pow(arr[0].second - arr[i].second, 2);
    pq.push(pair<double, int>(arrdis1[i], i));
  }
  pair<double, int> secpoint = pq.top();
  pq.pop();
  pair<long long, long long> sec = arr[secpoint.second];
  int qqqq = secpoint.second;
  mele = (sec.first - arr[0].first) == 0
             ? LONG_LONG_MAX
             : (sec.second - arr[0].second) / (sec.first - arr[0].first);
  while (!pq.empty()) {
    pair<double, int> thrp = pq.top();
    pq.pop();
    pair<long long, long long> tp = arr[thrp.second];
    int rr = thrp.second;
    double war[3];
    double area = abs(.5 * ((double)arr[0].first * (sec.second - tp.second) +
                            (double)sec.first * (tp.second - arr[0].second) +
                            (double)tp.first * (arr[0].second - sec.second)));
    if (area > .0000001) {
      cout << 1 << " " << qqqq + 1 << " " << rr + 1;
      return 0;
    }
  }
}
