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