#include <bits/stdc++.h>
using namespace std;
const int MXN = 1e5 + 1;
const int TMXN = 1e5 * 8 + 1;
const long long INF = pow(2, 64);
const long long INFL = 1e18;
long long a[MXN], n, m, g[MXN], ind[MXN], l, r, p, t;
vector<pair<long long, long long> > v;
vector<long long> res;
bool comp(int i, int j) {
  if (v[i].first < v[j].first) return 1;
  if (v[i].first > v[j].first) return 0;
  if (v[i].second < v[j].second) return 1;
  return 0;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> l >> r;
    v.push_back(make_pair(l, r));
    res.push_back(i);
  }
  sort(res.begin(), res.end(), comp);
  long long slgkdfld, fdklhkds, x2, y2;
  slgkdfld = v[res[0]].first;
  fdklhkds = v[res[0]].second;
  x2 = v[res[1]].first;
  y2 = v[res[1]].second;
  t = fdklhkds - y2;
  m = x2 - slgkdfld;
  p = -t * slgkdfld - m * fdklhkds;
  for (int i = 2; i < n; i++) {
    l = v[res[i]].first;
    r = v[res[i]].second;
    if (t * l + r * m + p != 0) {
      cout << res[0] + 1 << ' ' << res[1] + 1 << ' ' << res[i] + 1 << endl;
      return 0;
    }
  }
  return 0;
}
