#include #include #include #include #include #include #include #include #include #include #include #include #include #define NMAX 1030 #define MOD 666013 #define INF 0x3f3f3f3f #define pb push_back using namespace std; typedef pair pii; //ifstream fin("sushi.in"); //ofstream fout("sushi.out"); vector lista; string s,fin; int fr[300],n,m,mid=-1; int notpossible[300][300]; long long dp[1<<17][30], fact[20]; long long lgpow(long long a, long long b) { long long x=1,y=a; y%=MOD; while(b > 0) { if(b%2 == 1) { x=(x*y); if(x>MOD) x%=MOD; } y = (y*y); if(y>MOD) y%=MOD; b >>= 1; } return x; } long long memo(int mask, int last); int main() { int i; char x,y; cin>>s; n=s.size(); for(i=0;i1) { cout<<0; return 0; } cin>>m; for(i=0;i>x>>y; notpossible[x-'a'][y-'a']=notpossible[y-'a'][x-'a']=1; } memset(dp,-1,sizeof(dp)); for(i=0;i=0 && notpossible[mid][fin[i]]==0)) res+=memo((1<=MOD) ret-=MOD; } return ret; }