#include <bits/stdc++.h>
using namespace std;
int n;
set<string> d;
void generate(string s) {
  if (s.size() == n) {
    d.insert(s);
    return;
  }
  generate(s + 'a');
  generate(s + 'b');
  generate(s + 'c');
  generate(s + 'd');
  generate(s + 'e');
  generate(s + 'f');
}
int main() {
  int q, ans = 0;
  cin >> n;
  cin >> q;
  string a, b;
  map<string, string> m;
  while (q--) {
    cin >> a >> b;
    m[a] = b;
  }
  generate("");
  string temp, sub, x;
  for (set<string>::iterator it = d.begin(); it != d.end(); it++) {
    temp = (*it);
    int T = temp.size() - 2;
    for (int i = 0; i <= T; i++) {
      sub = temp.substr(i, 2);
      if (sub.size() == 2 && m.find(sub) != m.end()) {
        x = m[sub];
        temp.replace(i--, 2, x);
      }
      T = temp.size() - 2;
    }
    if (temp == "a") ans++;
  }
  cout << ans << "\n";
  return 0;
}
