#include <bits/stdc++.h>
using namespace std;

string s;
string t[505];
vector<int> pi[505];
int mat[505];
int dp[100005];
int n;
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cin >> s >> n;
  for (int i = 0; i < n; ++i) {
    cin >> t[i];
    int m = 0;
    pi[i].assign(t[i].size(), 0);
    for (int j = 1; j < t[i].size(); ++j) {
      while (t[i][j] != t[i][m] && m > 0) m = pi[i][m - 1];
      if (t[i][j] == t[i][m]) ++m;
      pi[i][j] = m;
    }
  }

  for (int i = 0; i < s.size(); ++i) {
    dp[i+1] = max(dp[i+1], dp[i]);
    for (int j = 0; j < n; ++j) {
      while (s[i] != t[j][mat[j]] && mat[j] > 0) mat[j] = pi[j][mat[j] - 1];
      if (s[i] == t[j][mat[j]]) ++mat[j];
      if (mat[j] == t[j].size()) {
        dp[i + 1] = max(dp[i + 1], dp[i - (int)t[j].size() + 1] + mat[j]);
        mat[j] = pi[j][mat[j] - 1];
      }
    }
  }
  cout << dp[s.size()] << '\n';
}
