func_code_string: #include <bits/stdc++.h>   using namespace std;   int read() {     int x = 0, f = 1;     char c = getchar();     while (c <  0  || c >  9 ) {       if (c ==  - ) f = -1;       c = getchar();     }     while ( 0  <= c && c <=  9 ) {       x = x * 10 + c -  0 ;       c = getchar();     }     return x * f;   }   int n, m, cnt, maxx, tab[300], f[1005][105][105];   char s[15];   struct Trie {     int bj, len, fail, ch[4];   } tree[105];   void Insert() {     int len = strlen(s + 1), now = 1;     maxx = max(maxx, len);     for (int i = 1; i <= len; ++i) {       int v = tab[s[i]];       int &o = tree[now].ch[v];       if (!o) o = ++cnt;       now = o;     }     tree[now].bj = 1;     tree[now].len = len;   }   void Build() {     queue<int> q;     for (int i = 0; i <= 3; ++i) tree[0].ch[i] = 1;     q.push(1);     while (!q.empty()) {       int x = q.front(), fail = tree[x].fail;       q.pop();       tree[x].bj |= tree[fail].bj;       tree[x].len = max(tree[x].len, tree[fail].len);       for (int i = 0; i <= 3; ++i) {         int &y = tree[x].ch[i];         if (!y)           y = tree[fail].ch[i];         else           tree[y].fail = tree[fail].ch[i], q.push(y);       }     }   }   inline int Mod(int x) { return x >= 1000000009 ? x - 1000000009 : x; }   int main() {     tab[ A ] = 0;     tab[ C ] = 1;     tab[ G ] = 2;     tab[ T ] = 3;     n = read();     m = read();     cnt = 1;     for (int i = 1; i <= m; ++i) scanf( %s , s + 1), Insert();     Build();     f[0][0][1] = 1;     for (int i = 0; i < n; ++i)       for (int j = 0; j <= maxx; ++j)         for (int k = 1; k <= cnt; ++k)           if (f[i][j][k])             for (int p = 0; p <= 3; ++p) {               int y = tree[k].ch[p];               if (j + 1 <= tree[y].len)                 f[i + 1][0][y] = Mod(f[i + 1][0][y] + f[i][j][k]);               else                 f[i + 1][j + 1][y] = Mod(f[i + 1][j + 1][y] + f[i][j][k]);             }     int ans = 0;     for (int k = 1; k <= cnt; ++k) ans = Mod(ans + f[n][0][k]);     cout << ans <<   n ;   }   