Pagini recente » Cod sursa (job #2839645) | Cod sursa (job #1854518) | Monitorul de evaluare | Profil OrzataAndrei | Cod sursa (job #2073844)
#include <bits/stdc++.h>
using namespace std;
ifstream in("nrcuv.in");
ofstream out("nrcuv.out");
bool viz[30][30];
long long dp[1005];
const int MOD = 104659;
int main()
{
int n,m,k=0;
char x,y;
in >> n >> m;
while (m--)
{
in >> x >> y;
if (x>y)
swap(x,y);
if (!viz[x-'a'][y-'a'])
{
viz[x-'a'][y-'a'] = 1;
if (x!=y)
k+=2;
else
k++;
}
}
dp[1] = 26;
for (int i = 2; i<=n; i++)
dp[i] = ((dp[i-1]*26)%MOD-k)%MOD;
out << dp[n];
}