#include <bits/stdc++.h>
using namespace std;
const int maxn = 100;
struct query {
  string a, b;
} T[maxn];
set<string> S;
string s, t;
int ans, n, q, i;
void dfs(string a) {
  if (S.count(a)) return;
  S.insert(a);
  if ((int)a.size() == n) {
    ans++;
    return;
  }
  int i;
  for (i = 1; i <= q; i++)
    if (a[0] == T[i].b[0]) {
      string s = a;
      s.erase(s.begin());
      s = T[i].a + s;
      dfs(s);
    }
}
int main() {
  scanf("%d%d", &n, &q);
  for (i = 1; i <= q; i++) {
    cin >> s >> t;
    T[i] = (query){s, t};
  }
  dfs("a");
  printf("%d", ans);
  return 0;
}
