#include <bits/stdc++.h>
using namespace std;
long double det(long double x, long double y, long double z, long double t) {
  return x * t - y * z;
}
long long fact(long long n) { return (n == 1 || n == 0) ? 1 : fact(n - 1) * n; }
long long star(long long n) {
  long long x = 0;
  while (log2(n) != 1) {
    n = log2(n);
    x += 1;
  }
  return x + 1;
}
long long power(long long x, long long y, long long m) {
  if (y == 0) return 1;
  long long p = power(x, y / 2, m) % m;
  p = (p * p) % m;
  return (y % 2 == 0) ? p : (x * p) % m;
}
long long modInverse(long long a, long long m) { return power(a, m - 2, m); }
inline long long in() {
  long long x, y;
  y = scanf("%I64d", &x);
  return x;
}
long long n;
vector<string> v[10];
long long dfs(char c, int w) {
  if (w == n) {
    return 1;
  } else if (w < n) {
    long long res = 0;
    for (long long j = 0; j < (long long)v[c - 'a'].size(); j++) {
      char a = v[c - 'a'][j][0], b = v[c - 'a'][j][1];
      res += dfs(a, w + 1);
    }
    return res;
  }
  return 0;
}
int main() {
  long long m;
  cin >> n >> m;
  string st;
  char c;
  for (long long i = 1; i <= m; i++) {
    cin >> st >> c;
    v[c - 'a'].push_back(st);
  }
  cout << dfs('a', 1);
  return 0;
}
