#include #include #include #include #include #include #include #include #include #include using namespace std; #define ALL(t) t.begin(),t.end() #define FOR(i,n) for (int i=0; i<(n); i++) #define FOREACH(i,t) for (typeof(t.begin()) i=t.begin(); i!=t.end(); i++) typedef vector vi; typedef long long int64; int main() { int c,n; scanf("%d",&c); while (c--) { char buf[30][30]; vector t[30][30],t2[30][30]; scanf("%d",&n); FOR(i,n) scanf(" %s",buf[i]); FOR(i,n) FOR(j,n) { char s[2]={buf[i][j]}; t[i][j].push_back(s); } for (int len=2; len<30; len++) { FOR(i,n) FOR(j,n) { t2[i][j].clear(); for (int dx=-1; dx<=1; dx++) for (int dy=-1; dy<=1; dy++) if ((dx || dy) && i+dx>=0 && i+dx=0 && j+dybuf[i][j]) FOR(k,t[i+dx][j+dy].size()) t2[i][j].push_back(string(1,buf[i][j])+t[i+dx][j+dy][k]); } FOR(i,n) FOR(j,n) t[i][j]=t2[i][j]; if (len>2) { vector s; FOR(i,n) FOR(j,n) FOR(k,t[i][j].size()) s.push_back(t[i][j][k]); sort(s.begin(),s.end()); s.erase(unique(s.begin(),s.end()),s.end()); FOR(k,s.size()) printf("%s\n",s[k].c_str()); } } if (c) printf("\n"); } return 0; }