#include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> #include <cctype> #include <string> #include <cmath> #include <sstream> using namespace std; string str[1000][18279]; int val[1000][18279]; bool isDone[1000][18279]; int C,R; int solve(int a,int b) { if(isDone[a][b]) return val[a][b]; string tmpstr; for(int i=0;i<str[a][b].size();i++) { if(str[a][b][i]=='=' || str[a][b][i]=='+') { str[a][b][i]=' '; } } stringstream ss; ss<<str[a][b]; int sum = 0; tmpstr=""; while(ss>>tmpstr) { int r = 0; int c = 0; for(int j=0;j<tmpstr.size();j++) { if(tmpstr[j]>='0' && tmpstr[j]<='9') { r=r*10+(tmpstr[j]-'0'); } else { c = c*26+(tmpstr[j]-'A'+1); } } int tt = solve(r,c); sum+=tt; } isDone[a][b]=1; return (val[a][b]=sum); } int toint(string st) { int sum = 0; for(int i=0;i<st.size();i++) { sum = sum*10+(st[i]-'0'); } return sum; } int main() { int t; cin>>t; while(t--) { cin>>C>>R; for(int i=1;i<=R;i++) { for(int j=1;j<=C;j++) { cin>>str[i][j]; isDone[i][j]=0; if(str[i][j][0]>='0' && str[i][j][0]<='9') { val[i][j]=toint(str[i][j]); isDone[i][j]=1; } } } for(int i=1;i<=R;i++) for(int j=1;j<=C;j++) cout<<solve(i,j)<<(j==C?"\n":" "); } return 0; }