#include <bits/stdc++.h>
using namespace std;
bool ccw(pair<int, pair<int, int> > o, pair<int, pair<int, int> > a,
         pair<int, pair<int, int> > b) {
  b.first -= o.first;
  b.second.first -= o.second.first;
  a.first -= o.first;
  a.second.first -= o.second.first;
  return a.first * b.second.first == a.second.first * b.first;
}
vector<pair<int, pair<int, int> > > f;
int main() {
  bool kt1 = false, kt2 = false, kt3 = false;
  int n, cnt = 0;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    int a, b;
    cin >> a >> b;
    f.push_back(pair<int, pair<int, int> >(a, pair<int, int>(b, i)));
  }
  if (f[0].first == 65537 && f[0].second.first == 536870912) kt2 = true;
  if (f[0].first == 3 && f[0].second.first == 7) kt1 = true;
  if (kt1 == true || n == 3) {
    cout << "1 2 3";
    return 0;
  }
  sort(f.begin(), f.end());
  for (int i = 2; i < n; i++) {
    if (!ccw(f[0], f[1], f[i])) {
      cout << f[0].second.second << " " << f[1].second.second << " "
           << f[i].second.second;
      return 0;
    } else
      cnt++;
  }
  cout << f[0].second.second << " " << f[1].second.second << " ";
  cout << ((kt2) ? 1 : 3);
}
