Pagini recente » Cod sursa (job #1630803) | Cod sursa (job #510354) | Cod sursa (job #2434701) | Cod sursa (job #41170) | Cod sursa (job #3236385)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("nrcuv.in");
ofstream cout("nrcuv.out");
const int N=104659;
int n,m;
char a,b;
vector<vector<bool>> M;
vector<vector<long long>> dp;
int main()
{
cin>>n>>m;
M.resize(26);
dp.resize(n+1);
dp[1].resize(26);
for(int i=0;i<26;i++)
{
M[i].resize(26);
dp[1][i]=1;
}
for(int i=0;i<m;i++)
{
cin>>a>>b;
M[a-'a'][b-'a']=1;
M[b-'a'][a-'a']=1;
}
for(int k=2;k<=n;k++)
{
dp[k].resize(26);
for(int i=0;i<26;i++)
for(int j=0;j<26;j++)
if(!M[i][j])
dp[k][i]=(dp[k][i]%N+dp[k-1][j]%N)%N;
}
long long s=0;
for(int i=0;i<26;i++)
s=(s%N+dp[n][i]%N)%N;
cout<<s;
return 0;
}