#include <bits/stdc++.h>
using namespace std;
char str[100005];
int N;
bool fob[27][27];
int f_min(int x, int y) { return x < y ? x : y; }
void get_data() {
  scanf("%s", str + 1);
  scanf("%d", &N);
  char com[10];
  memset(fob, 0, sizeof(fob));
  while (N--) {
    scanf("%s", com);
    fob[com[0] - 'a'][com[1] - 'a'] = 1;
    fob[com[1] - 'a'][com[0] - 'a'] = 1;
  }
}
int dp[100005][27];
void run() {
  int i, j;
  memset(dp, 0x3f, sizeof(dp));
  dp[0][26] = 0;
  for (i = 1; str[i]; i++) {
    for (j = 0; j < 27; j++) {
      dp[i][j] = f_min(dp[i][j], dp[i - 1][j] + 1);
      if (!fob[str[i] - 'a'][j]) {
        dp[i][str[i] - 'a'] = f_min(dp[i][str[i] - 'a'], dp[i - 1][j]);
      }
    }
  }
  int len = i - 1, res = 200000000;
  for (i = 0; i < 27; i++) {
    res = f_min(res, dp[len][i]);
  }
  printf("%d\n", res);
}
int main() {
  get_data();
  run();
  return 0;
}
