func_code_string: #include <bits/stdc++.h>   using namespace std;   struct pt {     long long x;     long long y;   };   pt u;   bool cmp(pt a, pt b) { return a.x < b.x || (a.x == b.x && a.y < b.y); }   bool cw(pt a, pt b, pt c) {     return a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y) < 0;   }   bool ccw(pt a, pt b, pt c) {     return a.x * (b.y - c.y) + b.x * (c.y - a.y) + c.x * (a.y - b.y) > 0;   }   long long operator%(const pt &a, const pt &b) { return a.x * b.y - a.y * b.x; }   long long operator*(const pt &a, const pt &b) { return a.x * b.x + a.y * b.y; }   bool A(const pt &p) { return u % p > 0 || (u % p == 0 && u * p > 0); }   bool operator<(const pt &a, const pt &b) {     return (A(a) == A(b) && a % b > 0) || (A(a) && !A(b));   }   void convex_hull(vector<pt> &a) {     if (a.size() == 1) return;     sort(a.begin(), a.end(), &cmp);     pt p1 = a[0], p2 = a.back();     vector<pt> up, down;     up.push_back(p1);     down.push_back(p1);     for (int i = 1; i < (int)a.size(); i++) {       if (i == a.size() - 1 || cw(p1, a[i], p2)) {         while (up.size() >= 2 && !cw(up[up.size() - 2], up[up.size() - 1], a[i]))           up.pop_back();         up.push_back(a[i]);       }       if (i == a.size() - 1 || ccw(p1, a[i], p2)) {         while (down.size() >= 2 &&                !ccw(down[down.size() - 2], down[down.size() - 1], a[i]))           down.pop_back();         down.push_back(a[i]);       }     }     a.clear();     for (int i = 0; i < (int)up.size(); i++) a.push_back(up[i]);     for (int i = down.size() - 2; i > 0; i--) a.push_back(down[i]);   }   int main() {     ios::sync_with_stdio(false);     cin.tie(0);     u.x = 0;     u.y = 0;     long long n;     cin >> n;     map<pair<long long, long long>, long long> cont;     vector<pt> points, points2;     points.push_back({0, 0});     for (int i = 0; i < n; i++) {       long long x, y;       cin >> x >> y;       pt a;       a.x = x;       a.y = y;       points.push_back(a);       points2.push_back(a);     }     vector<pt> white;     vector<pt> black;     convex_hull(points);     long long vez = 1;     sort(points.begin(), points.end());     for (auto e : points) {       cont[{e.x, e.y}] = 1;       if (e.x == 0 && e.y == 0) {         white.push_back(e);         black.push_back(e);         continue;       }       vez = 1 - vez;       vez == 1 ? white.push_back(e) : black.push_back(e);     }     for (auto e : points2) {       if (cont[{e.x, e.y}] == 0) {         white.push_back(e);         black.push_back(e);       }     }     convex_hull(white);     convex_hull(black);     bool can = false;     for (auto e : points) {       if (e.x & 1 || e.y & 1) can = true;     }     for (auto e : black) {       if (e.x & 1 || e.y & 1) can = true;     }     for (auto e : white) {       if (e.x & 1 || e.y & 1) can = true;     }     if (can)       cout <<  Ani  << endl;     else       cout <<  Borna  << endl;     return 0;   }   