rt
#include<bits/stdc++.h>
using namespace std;
const int Front[15][15][5]=
{
{{0,0,0,-1},{0,1,0,-1},{0,1,0,0},{0,1,0,1},{0,0,0,1}},
{{0,0,0,-1},{0,1,1,-1},{0,1,1,0},{0,1,1,1},{0,0,0,1}},
{{0,0,0,-1},{0,0,1,-1},{0,0,1,0},{0,0,1,1},{0,0,0,1}},
{{0,0,0,-1},{0,-1,1,-1},{0,-1,1,0},{0,-1,1,1},{0,0,0,1}},
{{0,0,0,-1},{0,-1,0,-1},{0,-1,0,0},{0,-1,0,1},{0,0,0,1}},
{{0,0,0,-1},{0,-1,-1,-1},{0,-1,-1,0},{0,-1,-1,1},{0,0,0,1}},
{{0,0,0,-1},{0,0,-1,-1},{0,0,-1,0},{0,0,-1,1},{0,0,0,1}},
{{0,0,0,-1},{0,1,-1,-1},{0,1,-1,0},{0,1,-1,1},{0,0,0,1}},
};
int n,t;
struct plane
{
bool dead;
int x,y,z,h,f,atk,def,mat,mdf,hp,fix_;
string moves;
void move(){x+=Front[f][h][1],y+=Front[f][h][2],z+=Front[f][h][3];}
void turn_h(char cha)
{
if(cha=='U')h=min(4,h+1);
else h=max(0,h-1);
}
void turn_f(char cha)
{
if(cha=='L')f=(f+1)%8;
else f=(f+7)%8;
}
void fix(){hp+=fix_;}
}planes[1005];
int main()
{
cin>>n>>t;
for(int i=1;i<=n;i++)
{
cin>>planes[i].x>>planes[i].y>>planes[i].z>>planes[i].h>>planes[i].f>>planes[i].atk;
cin>>planes[i].def>>planes[i].mat>>planes[i].mdf>>planes[i].hp>>planes[i].fix_>>planes[i].moves;
planes[i].dead=false;
}
for(int i=0;i<t;i++)
{
for(int j=1;j<=n;j++)
{
if(planes[j].dead)continue;
planes[i].move();
switch(planes[j].moves[i])
{
case 'U':
planes[j].turn_h('U');
break;
case 'D':
planes[j].turn_h('D');
break;
case 'L':
planes[j].turn_f('L');
break;
case 'R':
planes[j].turn_f('R');
break;
case 'F':
planes[j].fix();
break;
case 'A':
for(int k=1;k<=n;k++)
{
if(planes[k].x==planes[i].x&&planes[i].y==planes[i].y&&planes[i].z==planes[i].z||planes[i].dead)
continue;
if((planes[k].x-planes[i].x)%Front[planes[i].f][planes[i].h][1]==0&&(planes[i].y-planes[i].y)%Front[planes[i].f][planes[i].h][2]==0&&(planes[i].z-planes[i].z)%Front[planes[i].f][planes[i].h][3]==0)
{
planes[k].hp-=max(0,planes[i].atk-planes[i].def);
if(planes[k].hp<0)
planes[k].hp=0,planes[k].dead=true;
break;
}
}
break;
case 'M':
for(int k=1;k<=n;k++)
{
if(planes[k].x==planes[i].x&&planes[i].y==planes[i].y&&planes[i].z==planes[i].z||planes[i].dead)
continue;
if((planes[k].x-planes[i].x)%Front[planes[i].f][planes[i].h][1]==0&&(planes[i].y-planes[i].y)%Front[planes[i].f][planes[i].h][2]==0&&(planes[i].z-planes[i].z)%Front[planes[i].f][planes[i].h][3]==0)
{
planes[k].hp-=max(0,planes[i].mat-planes[i].mdf);
if(planes[k].hp<0)
planes[k].hp=0,planes[k].dead=true;
}
}
break;
}
}
}
for(int i=1;i<=n;i++)
cout<<planes[i].x<<' '<<planes[i].y<<' '<<planes[i].z<<' '<<planes[i].hp<<'\n';
return 0;
}