#include #include #include #include #include #include using namespace std; #define alps ('Z'-'A'+1) void solve(vector > &ord,vector &use,int cur,set &found,vector &res) { if (cur==found.size()){ res.push_back(""); return; } for (int i=0;i>h>>w,w!=0||h!=0;){ vector > bd(h); set found; for (int y=0;y>c; int n; if (c=='.') n=-1; else n=c-'A'; bd[y].push_back(n); if (n>=0) found.insert(n); } } vector min_x(alps,INT_MAX),max_x(alps,INT_MIN); vector min_y(alps,INT_MAX),max_y(alps,INT_MIN); for (int y=0;y > ord(alps,vector(alps,false)); for (int i=0;i use(alps,false); vector res; for (int i=0;i