#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;
}
