//以上省略
//宣告為全域變數陣列。b[]->代表是否上壘,b[1]==true->上一壘
bool b[4];
int convert(string s)//打擊結果->壘包數
{
if(s.compare("1B")==0)return 1;//傳回壘包數
if(s.compare("2B")==0)return 2;
if(s.compare("3B")==0)return 3;
if(s.compare("HR")==0)return 4;
if(s.compare("FO")==0)return 0;
if(s.compare("GO")==0)return 0;
if(s.compare("SO")==0)return 0;
}
int run(int c)
{
int temps=0;
for(int i=3;i>=1;i--)
{
if(b[i])
{
if((i+c)>=4)
{
temps++;b[i]=false;
}
else
{
b[i+c]=true;b[i]=false;
}
}
}
if(c==4)temps++;else b[c]=true;
return temps;
}
int main()
{
int p[9][5],n[9],out,tempout,score;
string s;
for(int i=0;i<9;i++)
{
cin>>n[i];
for(int j=0;j<n[i];j++)
{
cin>>s;
p[i][j]=convert(s);
}
}
cin>>out;
tempout=0;
score=0;
for(int i=1;i<4;i++)b[i]=false;
for(int j=0;j<5&&tempout<out;j++)
{
for(int i=0;i<9&&tempout<out;i++)
{
if(p[i][j]>0)score+=run(p[i][j]);
else
{
tempout++;//暫時出局數
if(tempout%3==0)for(int k=1;k<4;k++)b[k]=false;
} //三出局 //清空1~3壘包
}
}
cout<<score<<endl;
}