#include<iostream>

#include<stdio.h>
#include<vector>
#include<map>
#include<string>

#define FOR(i,a,b) for(int i = a; i<=b; i++)
#define PII pair<int, int>
#define fi first
#define se second
#define MP make_pair
using namespace std;

PII M[247][247];

map<string, int> id;
vector<string> name;

int nsd(int a, int b)
{
	if (a > b) swap(a,b);
	if (a == 0)  return b;
	return nsd(a,b%a);
}

PII zlomok(int a, int b)
{
	int d = nsd(a,b);
	a/=d;
	b/=d;
	return MP(a,b);
}

bool vacsi(PII A, PII B)
{
	//odcitame zlomky
	return (A.fi  * B.se) > (A.se * B.fi );
}

int main()
{
	int N;
	cin >> N;
	
	while(N > 0)
	{
		string n;
		name.resize(N);
		
		FOR(i,0,N-1)
		{
			cin >> name[i];
			id[name[i]] = i;
		}
			
					
		int h;
		cin >> h;
			
		FOR(i,0,N-1) FOR(j,0,N-1)
			M[i][j] = MP(0,0);
			
		string a, b;
		int v1, v2;
		FOR(i,0,h-1)
		{
			cin >> a >> b;
			scanf("%d:%d", &v1, &v2);
			M[ id[a] ][ id[b] ] = make_pair(v1,v2);
		}
		
		bool probl = false;
		FOR(i,0,N-1)FOR(j,0,N-1)
			if (M[i][j] != MP(0,0) && M[j][i] != MP(0,0))
			{
				if (
					zlomok(M[i][j].se,M[i][j].fi) != 
					zlomok(M[j][i].fi,M[j][i].se)
				)
					probl = true;
			}
		
		bool lepsia = false;
		FOR(k,0,N-1)
			FOR(i,0,N-1) FOR(j,0,N-1)
			{
				if (M[j][i] != MP(0,0) && M[i][k] != MP(0,0) && M[k][j] != MP(0,0))
				{
					//printf("%d %d %d\n", i, j, k);
					PII A = zlomok(M[j][i].se, M[j][i].fi);
					PII B = zlomok(M[i][k].se, M[i][k].fi);
					B = zlomok(M[k][j].fi * B.se, B.fi * M[k][j].se );
					//printf("%d %d - %d %d\n", B.fi, B.se, A.fi, A.se);
					if (vacsi(B,A)) 
					{
						//printf("%d %d %d\n", i,j , k);
						
						lepsia = true;
					}
				}
			}
		//printf("%d\n", lepsia);
		if (lepsia || probl)
			cout << "Arbitrage" << endl;
		else cout << "Ok" << endl;
		
		cin >> N;
	}
	
	return 0;
}
