#include #include using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int N,M; cin>>N>>M; atcoder::dsu uf(N+10); for(;M--;) { string Q;cin>>Q; vectorprv(26,-1); for(int i=0;i='0'&&Q[i]<='9') { uf.merge(i,N+Q[i]-'0'); } else { int c=Q[i]-'a'; if(prv[c]!=-1)uf.merge(prv[c],i); prv[c]=i; } } int ans=1; const int mod=998244353; for(vectorg:uf.groups()) { int ex=0; for(int v:g)if(v>=N)ex|=1<1)ans=0; } else { ans=ans*10LL%mod; } } cout<