func_code_string: #include <bits/stdc++.h>   using namespace std;   const double pi = acos(-1.0);   const double eps = 1e-11;   const int INFINITE = 0x3f3f3f3f;   template <class T>   inline void checkmin(T &a, T b) {     if (b < a) a = b;   }   template <class T>   inline void checkmax(T &a, T b) {     if (b > a) a = b;   }   template <class T>   inline T sqr(T x) {     return x * x;   }   template <class T>   inline T lowbit(T n) {     return (n ^ (n - 1)) & n;   }   template <class T>   inline int countbit(T n) {     return (n == 0) ? 0 : (1 + countbit(n & (n - 1)));   }   typedef vector<int> VI;   typedef vector<VI> VII;   typedef vector<string> VS;   int dx[4] = {1, 0, 0, -1};   int dy[4] = {0, 1, -1, 0};   bool isright(int x1, int y1, int x2, int y2, int x3, int y3) {     int l12 = (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2);     int l23 = (x2 - x3) * (x2 - x3) + (y2 - y3) * (y2 - y3);     int l31 = (x3 - x1) * (x3 - x1) + (y3 - y1) * (y3 - y1);     if (l12 == 0 || l23 == 0 || l31 == 0) return false;     return (l12 + l23 == l31 || l12 + l31 == l23 || l23 + l31 == l12);   }   int main() {     ios::sync_with_stdio(false);     int p[3][2];     cin >> p[0][0] >> p[0][1] >> p[1][0] >> p[1][1] >> p[2][0] >> p[2][1];     if (isright(p[0][0], p[0][1], p[1][0], p[1][1], p[2][0], p[2][1])) {       cout <<  RIGHT n ;       return 0;     }     for (int n = (int)(0); n < (int)(3); n++)       for (int i = (int)(0); i < (int)(4); i++) {         p[n][0] += dx[i], p[n][1] += dy[i];         if (isright(p[0][0], p[0][1], p[1][0], p[1][1], p[2][0], p[2][1])) {           cout <<  ALMOST n ;           return 0;         }         p[n][0] -= dx[i], p[n][1] -= dy[i];       }     cout <<  NEITHER n ;     return 0;   }   