#include<bits/stdc++.h>
using namespace std;
struct js{
int HP=0,MP=0,hp=0,mp=0,atk=0,uatk=0,def=0,udef=0,id=0,first=0;
vector<pair<int,bool> > p;
int tf=0,jn=0;
int tf_x=0,tf_y=0;
int jn_x=0,jn_y=0,jn_z=0;
bool die=0,play=0;
}alice[12],bob[12];
int go=0,anum=0,bnum=0,Round=1,n,uATK[24000][2],uDEF[24000][2],uMP[24000][2],puATK[24000][2],puDEF[24000][2],u_jn10_play=-1,jn10oR=0;
void ifwin(){
if (anum==0 && bnum==0){
cout<<"qwq"<<endl;
go=1;
return ;
}else if (anum!=0 && bnum==0){
cout<<Round<<endl<<"Alice"<<endl;
for (int i=1;i<=n;++i){
cout<<max(alice[i].hp,0)<<" ";
}
go=1;
return ;
}else if (anum==0 && bnum!=0){
cout<<Round<<endl<<"Bob"<<endl;
for (int i=1;i<=n;++i){
cout<<max(bob[i].hp,0)<<" ";
}
go=1;
return ;
}else{
return ;
}
return ;
}
void ifdie(js &a){
if (a.hp<=0){
a.die=1;
a.hp=0;
if (!a.play){
anum-=1;
for (int i=1;i<=n;++i){
for (int j=0;j<bob[i].p.size();++j){
if (bob[i].p[j].first==a.id){
bob[i].p[j].second=1;
}
}
}
}else{
bnum-=1;
for (int i=1;i<=n;++i){
for (int j=0;j<alice[i].p.size();++j){
if (alice[i].p[j].first==a.id){
alice[i].p[j].second=1;
}
}
}
}
}
ifwin();
return ;
}
void hurt(js &a,int atk,int tatk){
if (a.mp<a.MP){
a.mp+=1;
}
if (a.tf==1){
a.hp-=max(atk-max(a.def+a.udef,0),0)+tatk-tatk/2;
}else{
a.hp-=max(atk-max(a.def+a.udef,0),0)+tatk;
}
ifdie(a);
return ;
}
int hurt_cmp(js &a){
int jshurt=max(a.atk+a.uatk,1);
if (!a.play){
js fir=bob[a.first];
if (a.tf==2){
if (fir.tf==1){
return max(jshurt-max(fir.def+fir.udef,0),0)+a.tf_x-floor(a.tf_x*1.0/2);
}else{
return max(jshurt-max(fir.def+fir.udef,0),0)+a.tf_x;
}
}else if (a.tf==4){
if (fir.tf==1){
return jshurt-floor(jshurt*1.0/2);
}else{
return jshurt;
}
}else{
return jshurt;
}
}else{
js fir=alice[a.first];
if (a.tf==2){
if (fir.tf==1){
return max(jshurt-max(fir.def+fir.udef,0),0)+a.tf_x-floor(a.tf_x*1.0/2);
}else{
return max(jshurt-max(fir.def+fir.udef,0),0)+a.tf_x;
}
}else if (a.tf==4){
if (fir.tf==1){
return jshurt-floor(jshurt*1.0/2);
}else{
return jshurt;
}
}else{
return jshurt;
}
}
return 0;
}
void find_js(js &a){
if (!a.play){
for (int i=0;i<alice[a.id].p.size();++i){
if (!alice[a.id].p[i].second){
alice[a.id].first=alice[a.id].p[i].first;
return ;
}
}
}else{
for (int i=0;i<bob[a.id].p.size();++i){
if (!bob[a.id].p[i].second){
bob[a.id].first=bob[a.id].p[i].first;
return ;
}
}
}
}
void A_pg(js &a){
int jshurt=max(a.atk+a.uatk,1);
if (a.tf==2){
hurt(bob[a.first],jshurt,a.tf_x);
}else if (a.tf==4){
hurt(bob[a.first],0,jshurt);
}else{
hurt(bob[a.first],jshurt,0);
}
}
void B_pg(js &a){
int jshurt=max(a.atk+a.uatk,1);
if (a.tf==2){
hurt(alice[a.first],jshurt,a.tf_x);
}else if (a.tf==4){
hurt(alice[a.first],0,jshurt);
}else{
hurt(alice[a.first],jshurt,0);
}
}
void Ause_jn(js &a){
int jshurt=max(a.atk+a.uatk,1);
if (a.jn==0){
return ;
}else if (a.jn==1){
for (int i=1;i<=n;++i){
if (!bob[i].die){
hurt(bob[i],a.jn_x,0);
if (go){
return ;
}
bob[i].mp=bob[i].mp-bob[i].MP*1.0/10;
}
}
}else if (a.jn==2){
for (int i=1;i<=n;++i){
if (!bob[i].die){
hurt(bob[i],0,jshurt);
if (go){
return ;
}
}
}
}else if (a.jn==3){
for (int i=1;i<=n;++i){
if (!bob[i].die){
hurt(bob[i],min(floor(bob[i].HP*1.0/10),a.jn_x*jshurt*1.0),0);
if (go){
return ;
}
}
}
}else if (a.jn==4){
for (int i=Round;i<=Round+a.jn_x-1;++i){
uMP[i][0]+=a.jn_y;
}
}else if (a.jn==5){
bob[a.first].udef-=a.jn_x;
hurt(bob[a.first],0,jshurt);
if (go){
return ;
}
}else if (a.jn==6){
hurt(bob[a.first],0,jshurt);
if (go){
return ;
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uATK[i][1]-=a.jn_y;
}
}else if (a.jn==7){
js mhjs;
mhjs.HP=INT_MAX-1;
for (int i=1;i<=n;++i){
if (!alice[i].die){
if (alice[i].hp<mhjs.hp){
mhjs=alice[i];
}else if (alice[i].hp==mhjs.hp && i<mhjs.id){
mhjs=alice[i];
}
}
}
alice[mhjs.id].hp+=a.jn_z;
for (int i=Round;i<=Round+a.jn_x-1;++i){
uATK[i][0]+=a.jn_y;
}
}else if (a.jn==8){
for (int i=1;i<=n;++i){
if (!bob[i].die){
hurt(bob[i],jshurt,0);
if (go){
return ;
}
}
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uDEF[i][1]-=a.jn_y;
}
}else if (a.jn==9){
for (int i=1;i<=n;++i){
if (!alice[i].die){
alice[i].hp+=a.jn_z;
}
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uDEF[i][0]+=a.jn_y;
}
}else{
for (int i=1;i<=n;++i){
if (!alice[i].die){
alice[i].atk*=2;
alice[i].def*=2;
alice[i].hp=max(floor(alice[i].HP*1.0/2),alice[i].hp*1.0);
alice[i].mp=max(floor(alice[i].MP*1.0/2),alice[i].mp*1.0);
}
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uMP[i][0]+=1;
}
for (int i=1;i<=n;++i){
if (!alice[i].die && alice[i].jn==10){
alice[i].jn=0;
}
if (!bob[i].die && bob[i].jn==10){
bob[i].jn=0;
}
}
u_jn10_play=0;
jn10oR=Round+a.jn_x-1;
}
}
void Buse_jn(js &a){
int jshurt=max(a.atk+a.uatk,1);
if (a.jn==0){
return ;
}else if (a.jn==1){
for (int i=1;i<=n;++i){
if (!alice[i].die){
hurt(alice[i],a.jn_x,0);
if (go){
return ;
}
alice[i].mp=alice[i].mp-alice[i].MP*1.0/10;
}
}
}else if (a.jn==2){
for (int i=1;i<=n;++i){
if (!alice[i].die){
hurt(alice[i],0,jshurt);
if (go){
return ;
}
}
}
}else if (a.jn==3){
for (int i=1;i<=n;++i){
if (!alice[i].die){
hurt(alice[i],min(floor(alice[i].HP*1.0/10),a.jn_x*jshurt*1.0),0);
if (go){
return ;
}
}
}
}else if (a.jn==4){
for (int i=Round;i<=Round+a.jn_x-1;++i){
uMP[i][1]+=a.jn_y;
}
}else if (a.jn==5){
alice[a.first].udef-=a.jn_x;
hurt(alice[a.first],0,jshurt);
if (go){
return ;
}
}else if (a.jn==6){
hurt(alice[a.first],0,jshurt);
if (go){
return ;
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uATK[i][0]-=a.jn_y;
}
}else if (a.jn==7){
js mhjs;
mhjs.HP=INT_MAX-1;
for (int i=1;i<=n;++i){
if (!bob[i].die){
if (bob[i].hp<mhjs.hp){
mhjs=bob[i];
}else if (bob[i].hp==mhjs.hp && i<mhjs.id){
mhjs=bob[i];
}
}
}
bob[mhjs.id].hp+=a.jn_z;
for (int i=Round;i<=Round+a.jn_x-1;++i){
uATK[i][1]+=a.jn_y;
}
}else if (a.jn==8){
for (int i=1;i<=n;++i){
if (!alice[i].die){
hurt(alice[i],jshurt,0);
if (go){
return ;
}
}
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uDEF[i][0]-=a.jn_y;
}
}else if (a.jn==9){
for (int i=1;i<=n;++i){
if (!bob[i].die){
bob[i].hp+=a.jn_z;
}
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uDEF[i][1]+=a.jn_y;
}
}else{
for (int i=1;i<=n;++i){
if (!bob[i].die){
bob[i].atk*=2;
bob[i].def*=2;
bob[i].hp=max(floor(bob[i].HP*1.0/2),bob[i].hp*1.0);
bob[i].mp=max(floor(bob[i].MP*1.0/2),bob[i].mp*1.0);
}
}
for (int i=Round;i<=Round+a.jn_x-1;++i){
uMP[i][1]+=1;
}
for (int i=1;i<=n;++i){
if (!alice[i].die && alice[i].jn==10){
alice[i].jn=0;
}
if (!bob[i].die && bob[i].jn==10){
bob[i].jn=0;
}
}
u_jn10_play=1;
jn10oR=Round+a.jn_x-1;
}
}
int main(){
cin>>n;
anum=n;bnum=n;
for (int i=1;i<=n;++i){
cin>>alice[i].HP>>alice[i].MP>>alice[i].atk>>alice[i].def;
alice[i].hp=alice[i].HP;
for (int j=1;j<=n;++j){
int id;
cin>>id;
alice[i].p.push_back({id,0});
}
cin>>alice[i].tf>>alice[i].tf_x>>alice[i].tf_y;
cin>>alice[i].jn>>alice[i].jn_x>>alice[i].jn_y>>alice[i].jn_z;
alice[i].play=0;
alice[i].id=i;
}
for (int i=1;i<=n;++i){
cin>>bob[i].HP>>bob[i].MP>>bob[i].atk>>bob[i].def;
bob[i].hp=bob[i].HP;
for (int j=1;j<=n;++j){
int id;
cin>>id;
bob[i].p.push_back({id,0});
}
cin>>bob[i].tf>>bob[i].tf_x>>bob[i].tf_y;
cin>>bob[i].jn>>bob[i].jn_x>>bob[i].jn_y>>bob[i].jn_z;
bob[i].play=1;
bob[i].id=i;
}
for (int i=1;i<=24000;++i){
Round=i;
puATK[i][0]=uATK[i][0];
puDEF[i][0]=uDEF[i][0];
puATK[i][1]=uATK[i][1];
puDEF[i][1]=uDEF[i][1];
for (int j=1;j<=n;++j){
if (!alice[j].die){
alice[j].uatk+=uATK[i][0];
alice[j].udef+=uDEF[i][0];
}
if (!bob[j].die){
bob[j].uatk+=uATK[i][1];
bob[j].udef+=uDEF[i][1];
}
}
for (int j=1;j<=n;++j){
if (!alice[j].die){
find_js(alice[j]);
}
}
js usejn_js;
usejn_js.id=0;
for (int j=1;j<=n;++j){
if (alice[j].mp==alice[j].MP && !alice[j].die){
if (alice[j].jn>usejn_js.jn){
usejn_js=alice[j];
}else if (alice[j].jn==usejn_js.jn && alice[j].id>usejn_js.id){
usejn_js=alice[j];
}
}
}
if (usejn_js.id!=0){
alice[usejn_js.id].mp=0;
Ause_jn(alice[usejn_js.id]);
if (go){
return 0;
}
alice[usejn_js.id].mp+=1;
if (alice[usejn_js.id].tf==5){
alice[usejn_js.id].mp=min(alice[usejn_js.id].mp+alice[usejn_js.id].tf_y,alice[usejn_js.id].MP);
}
for (int j=1;j<=n;++j){
alice[j].uatk-=puATK[i][0];
alice[j].udef-=puDEF[i][0];
bob[j].uatk-=puATK[i][0];
bob[j].udef-=puDEF[i][0];
}
puATK[i][0]=uATK[i][0];
puDEF[i][0]=uDEF[i][0];
puATK[i][1]=uATK[i][1];
puDEF[i][1]=uDEF[i][1];
for (int j=1;j<=n;++j){
if (!alice[j].die){
alice[j].uatk+=uATK[i][0];
alice[j].udef+=uDEF[i][0];
}
if (!bob[j].die){
bob[j].uatk+=uATK[i][1];
bob[j].udef+=uDEF[i][1];
}
}
}else{
js usepg_js;
usepg_js.id=0;
for (int j=1;j<=n;++j){
if (!alice[j].die){
if (bob[alice[j].first].hp>bob[usepg_js.first].hp){
usepg_js=alice[j];
}else if (bob[alice[j].first].hp==bob[usepg_js.first].hp){
int num1=hurt_cmp(alice[j]),num2=hurt_cmp(usepg_js);
if (num1>num2){
usepg_js=alice[j];
}else if (num1==num2 && alice[j].id>usepg_js.id){
usepg_js=alice[j];
}
}
}
}
A_pg(usepg_js);
if (go){
return 0;
}
alice[usepg_js.id].mp=min(alice[usepg_js.id].mp+1,alice[usepg_js.id].MP);
if (alice[usepg_js.id].tf==5){
alice[usepg_js.id].hp=min(alice[usepg_js.id].hp+alice[usepg_js.id].tf_x,alice[usepg_js.id].HP);
}
}
for (int j=1;j<=n;++j){
if (!alice[j].die){
alice[j].mp=min(alice[j].mp+1,alice[j].MP);
if (alice[j].tf==3){
alice[j].hp=min(alice[j].hp+alice[j].tf_x,alice[j].HP);
alice[j].mp=min(alice[j].mp+alice[j].tf_y,alice[j].MP);
}
alice[j].mp=min(alice[j].mp+uMP[i][0],alice[j].MP);
}
}
for (int j=1;j<=n;++j){
if (!bob[j].die){
find_js(bob[j]);
}
}
usejn_js.id=0;
for (int j=1;j<=n;++j){
if (bob[j].mp==bob[j].MP && !bob[j].die){
if (bob[j].jn>usejn_js.jn){
usejn_js=bob[j];
}else if (bob[j].jn==usejn_js.jn && bob[j].id>usejn_js.id){
usejn_js=bob[j];
}
}
}
if (usejn_js.id!=0){
bob[usejn_js.id].mp=0;
Buse_jn(bob[usejn_js.id]);
if (go){
return 0;
}
bob[usejn_js.id].mp+=1;
if (bob[usejn_js.id].tf==5){
bob[usejn_js.id].mp=min(bob[usejn_js.id].mp+bob[usejn_js.id].tf_y,bob[usejn_js.id].MP);
}
for (int j=1;j<=n;++j){
alice[j].uatk-=puATK[i][0];
alice[j].udef-=puDEF[i][0];
bob[j].uatk-=puATK[i][0];
bob[j].udef-=puDEF[i][0];
}
puATK[i][0]=uATK[i][0];
puDEF[i][0]=uDEF[i][0];
puATK[i][1]=uATK[i][1];
puDEF[i][1]=uDEF[i][1];
for (int j=1;j<=n;++j){
if (!alice[j].die){
alice[j].uatk+=uATK[i][0];
alice[j].udef+=uDEF[i][0];
}
if (!bob[j].die){
bob[j].uatk+=uATK[i][1];
bob[j].udef+=uDEF[i][1];
}
}
}else{
js usepg_js;
usepg_js.id=0;
for (int j=1;j<=n;++j){
if (!bob[j].die){
if (alice[bob[j].first].hp>alice[usepg_js.first].hp){
usepg_js=bob[j];
}else if (alice[bob[j].first].hp==alice[usepg_js.first].hp){
int num1=hurt_cmp(bob[j]),num2=hurt_cmp(usepg_js);
if (num1>num2){
usepg_js=bob[j];
}else if (num1==num2 && bob[j].id>usepg_js.id){
usepg_js=bob[j];
}
}
}
}
B_pg(usepg_js);
if (go){
return 0;
}
bob[usepg_js.id].mp=min(bob[usepg_js.id].mp+1,bob[usepg_js.id].MP);
if (bob[usepg_js.id].tf==5){
bob[usepg_js.id].hp=min(bob[usepg_js.id].hp+bob[usepg_js.id].tf_x,bob[usepg_js.id].HP);
}
}
for (int j=1;j<=n;++j){
if (!bob[j].die){
bob[j].mp=min(bob[j].mp+1,bob[j].MP);
if (bob[j].tf==3){
bob[j].hp=min(bob[j].hp+bob[j].tf_x,bob[j].HP);
bob[j].mp=min(bob[j].mp+bob[j].tf_y,bob[j].MP);
}
bob[j].mp=min(bob[j].mp+uMP[i][0],bob[j].MP);
}
}
for (int j=1;j<=n;++j){
if (!alice[j].die){
alice[j].uatk-=puATK[i][0];
alice[j].udef-=puDEF[i][0];
}
if (!bob[j].die){
bob[j].uatk-=puATK[i][0];
bob[j].udef-=puDEF[i][0];
}
}
if (i==jn10oR){
if (!u_jn10_play){
anum=0;
}else{
bnum=0;
}
}
ifwin();
if (go){
return 0;
}
}
cout<<"qwq"<<endl;
return 0;
}