#include <bits/stdc++.h>
using namespace std;
string text, str[105];
int z[200005], z1[200005];
int L[2005], R[2005], n1, n2;
void calc_Z(string s) {
  int l = 0, r = 0;
  n1 = s.size();
  for (int i = 1; i < s.size(); i++) {
    if (i > r) {
      l = r = i;
      while (r < s.size() && s[r - l] == s[r]) {
        r++;
      }
      z[i] = r - i;
      r--;
    } else {
      int k = i - l;
      if (z[k] < r - i + 1) {
        z[i] = z[k];
      } else {
        l = i;
        while (r < s.size() && s[r - l] == s[r]) {
          r++;
        }
        z[i] = r - l;
        r--;
      }
    }
  }
}
void calc_Z_rev(string s) {
  int l = 0, r = 0;
  n2 = s.size();
  for (int i = 1; i < s.size(); i++) {
    if (i > r) {
      l = r = i;
      while (r < s.size() && s[r - l] == s[r]) {
        r++;
      }
      z1[i] = r - i;
      r--;
    } else {
      int k = i - l;
      if (z1[k] < r - i + 1) {
        z1[i] = z1[k];
      } else {
        l = i;
        while (r < s.size() && s[r - l] == s[r]) {
          r++;
        }
        z1[i] = r - l;
        r--;
      }
    }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  string text1;
  int m, ans = 0, i, j;
  cin >> text;
  text1 = "";
  for (i = text.size() - 1; i >= 0; i--) {
    text1 += text[i];
  }
  cin >> m;
  for (i = 0; i < m; i++) {
    cin >> str[i];
    calc_Z(str[i] + "$" + text);
    std::reverse(str[i].begin(), str[i].end());
    calc_Z_rev(str[i] + "$" + text1);
    int l5 = str[i].size();
    for (j = 0; j <= l5; j++) {
      L[j] = 2000000200;
      R[j] = -1;
    }
    for (j = l5 + 1; j < n1; j++) {
      if (z[j] >= 1 && L[z[j]] == 2000000200) {
        L[z[j]] = j - l5 - 1;
      }
    }
    for (j = l5 + 1; j < n2; j++) {
      if (z1[j] >= 1 && R[z1[j]] == -1) {
        R[z1[j]] = j - l5 - 1;
        R[z1[j]] = text.size() - 1 - R[z1[j]];
      }
    }
    for (j = l5 - 1; j >= 1; j--) {
      L[j] = min(L[j], L[j + 1]);
      R[j] = max(R[j], R[j + 1]);
    }
    for (j = 1; j < l5; j++) {
      if (L[j] != 2000000200 && R[l5 - j] != -1 &&
          L[j] + j - 1 < R[l5 - j] - l5 + j + 1) {
        ans++;
        break;
      }
    }
  }
  cout << ans << "\n";
  return 0;
}
