#include <bits/stdc++.h>
using namespace std;
unordered_map<string, vector<string> > m;
set<string> q;
string SS(char C) {
  string p = "";
  p += C;
  return p;
}
void dfs(string s, long n) {
  if (n == 0) {
    q.insert(s);
    return;
  }
  for (auto i : m[SS(s[0])]) dfs(i + s.substr(1, s.size() - 1), n - 1);
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  long n, t;
  cin >> n >> t;
  string s, p;
  for (long i = long(0); i < long(t); i++) {
    cin >> s >> p;
    m[p].push_back(s);
  }
  for (auto i : m["a"]) dfs(i, n - 2);
  cout << q.size();
}
