#include <bits/stdc++.h>   using namespace std;   class Constellation {     static const long long N = 100010;     inline long long sign(long long x) { return x > 0 ? 1 : x == 0 ? 0 : -1; }     struct point {       long long x, y, num;     } b[N];     long long n;     long long cross(const point &a, const point &b, const point &c) {       return sign((b.x - a.x) * (c.y - a.y) - (b.y - a.y) * (c.x - a.x));     }     bool contain(const point &a, const point &b, const point &c, const point &p) {       long long v1 = cross(a, b, p), v2 = cross(b, c, p), v3 = cross(c, a, p);       return v1 * v2 >= 0 && v2 * v3 >= 0 && v3 * v1 >= 0;     }       public:     void solve() {       cin >> n;       for (long long i = 1; i <= n; ++i) cin >> b[i].x >> b[i].y;       long long p1 = 1, p2 = 2, p3 = 0;       for (long long i = 3; i <= n; ++i)         if (cross(b[p1], b[p2], b[i])) {           p3 = i;           break;         }       for (long long i = 1; i <= n; ++i)         if (i != p1 && i != p2 && i != p3 && contain(b[p1], b[p2], b[p3], b[i])) {           if (cross(b[p1], b[p2], b[i]))             p3 = i;           else             p2 = i;         }       cout << p1 <<     << p2 <<     << p3 << endl;     }   } T;   int main() { T.solve(); }   