#include <bits/stdc++.h>
using namespace std;
struct DOT {
  int x, y, s;
  DOT(int _x = 0, int _y = 0) { x = _x, y = _y; }
} a[200100];
DOT operator-(DOT a, DOT b) { return DOT(a.x - b.x, a.y - b.y); }
long long ctime(DOT a, DOT b) { return 1ll * a.x * b.y - 1ll * a.y * b.x; }
int n, t, s[200100], d[200100];
bool cmp(DOT a, DOT b) { return a.x < b.x || (a.x == b.x && a.y < b.y); }
void convexhull() {
  t = 0;
  for (int i = 0, _E_ = n; i <= _E_; ++i)
    if (a[i].s ^ 1) {
      while (t > 1 && ctime(a[s[t]] - a[s[t - 1]], a[i] - a[s[t]]) <= 0) --t;
      s[++t] = i;
    }
  int k = t;
  for (int i = n, _E_ = 0; i >= _E_; --i)
    if (a[i].s ^ 1) {
      while (t > k && ctime(a[s[t]] - a[s[t - 1]], a[i] - a[s[t]]) <= 0) --t;
      s[++t] = i;
    }
}
bool win() {
  memcpy(d, s, sizeof s);
  int T = t;
  for (int i = 1, _E_ = T; i <= _E_; ++i)
    if ((a[d[i]].x | a[d[i]].y) & 1) return 1;
  for (int i = 2, _E_ = T - 1; i <= _E_; ++i)
    if (i & 1)
      a[d[i]].s = 1;
    else
      a[d[i]].s = 2;
  convexhull();
  int p = 0;
  for (int i = 2, _E_ = t; i <= _E_; ++i)
    if ((a[s[i]].x | a[s[i]].y) & 1) return 1;
  for (int i = 2, _E_ = T - 1; i <= _E_; ++i)
    if (i & 1)
      a[d[i]].s = 2;
    else
      a[d[i]].s = 1;
  convexhull();
  for (int i = 2, _E_ = t; i <= _E_; ++i)
    if ((a[s[i]].x | a[s[i]].y) & 1) return 1;
  return 0;
}
int main() {
  scanf("%d", &n);
  a[0].x = 0;
  a[0].y = 0;
  a[0].s = 0;
  for (int i = 1, _E_ = n; i <= _E_; ++i)
    scanf("%d %d", &a[i].x, &a[i].y), a[i].s = 0;
  sort(a, a + n + 1, cmp);
  convexhull();
  if (win())
    printf("Ani");
  else
    printf("Borna");
}
