#include <bits/stdc++.h>
using namespace std;
int m, k, i, j;
long long a[55][55], ans[55][55], c[55][55], n, mo = 1000000007, s = 0;
int main() {
  cin >> n >> m >> k;
  for (i = 0; i < m; i++)
    for (j = 0; j < m; j++) a[i][j] = 1;
  string st;
  getline(cin, st);
  for (i = 0; i < k; i++) {
    char c1, c2;
    getline(cin, st);
    c1 = char(st[0]);
    c2 = char(st[1]);
    int x1 = c1 - 'a', x2 = c2 - 'a';
    if (x1 < 0) x1 = x1 + 'a' - 'A' + 26;
    if (x2 < 0) x2 = x2 + 'a' - 'A' + 26;
    a[x1][x2] = 0;
  }
  for (i = 0; i < m; i++) ans[i][i] = 1;
  n--;
  while (n) {
    if (n % 2) {
      for (i = 0; i < m; i++)
        for (j = 0; j < m; j++) c[i][j] = 0;
      for (i = 0; i < m; i++)
        for (j = 0; j < m; j++)
          for (k = 0; k < m; k++)
            c[i][j] = (c[i][j] + a[i][k] * ans[k][j]) % mo;
      for (i = 0; i < m; i++)
        for (j = 0; j < m; j++) ans[i][j] = c[i][j];
    }
    n /= 2;
    for (i = 0; i < m; i++)
      for (j = 0; j < m; j++) c[i][j] = 0;
    for (i = 0; i < m; i++)
      for (j = 0; j < m; j++)
        for (k = 0; k < m; k++) c[i][j] = (c[i][j] + a[i][k] * a[k][j]) % mo;
    for (i = 0; i < m; i++)
      for (j = 0; j < m; j++) a[i][j] = c[i][j];
  }
  for (i = 0; i < m; i++)
    for (j = 0; j < m; j++) s = (s + ans[i][j]) % mo;
  cout << s;
  return 0;
}
