#include using namespace std; string arr[105]; int n, m; bool Check(int ind, int s[30]); int main(){ int cl[30]={0}; ifstream In("constructor.in"); ofstream Out("constructor.out"); In >> n >> m; char c; int x; for(int i=0; i> c; x=c-'a'; In >> cl[x];} for(int i=0; i> arr[i]; int cl2[30]; for(int i=0; inl)nr--; } br += nl - l + r - nr; //cout << br << " " << arr[ind][l] << " " << s[arr[ind][l]-'a'] << endl; if(br!=s[arr[ind][l]-'a'])return false; s[arr[ind][l]-'a']=0; l = nl+1; r = nr-1; }else{//cout << "else" << endl; nl = l; while(arr[ind][nl]==arr[ind][nl+1] && nl0)nr--; if(r-nr+1==s[arr[ind][r]-'a']){ s[arr[ind][r]-'a']=0; r=nr-1; continue; } //cout << "flag " << nl << " " << nr << endl; return false; } } for(int i=0; i<25; i++)if(s[i])return false; return true; }