#include <bits/stdc++.h>
using namespace std;
using vi = vector<int>;
using vvi = vector<vi>;
using ii = pair<int, int>;
using vii = vector<ii>;
using l = long long;
using vl = vector<l>;
using vvl = vector<vl>;
using ll = pair<l, l>;
using vll = vector<ll>;
using vvll = vector<vll>;
using lu = unsigned long long;
using vb = vector<bool>;
using vvb = vector<vb>;
using vd = vector<double>;
using vvd = vector<vd>;
const int INF = numeric_limits<int>::max();
const double EPS = 1e-10;
const l e5 = 100000, e6 = 1000000, e7 = 10000000, e9 = 1000000000;
const bool enable_log = false;
struct VoidStream {
  void operator&(std::ostream&) {}
};
vl kmp_build_back(const string& p) {
  vl b(p.size());
  l j = -1;
  for (size_t i = 0; i < p.size(); i++) {
    b[i] = j;
    while ((j > -1) and (p[j] != p[i])) j = b[j];
    j++;
  }
  return b;
}
bool kmp_search1(const string& p, const string& s, const vl& b,
                 vl& match_length) {
  l j = 0;
  l p_size = p.size();
  for (size_t i = 0; i < s.size(); i++) {
    while ((j > -1) and (p[j] != s[i])) j = b[j];
    j++;
    match_length[i] = max(j, (i > 0) ? match_length[i - 1] : j);
    if (j == p_size) {
      return true;
    }
  }
  return false;
}
bool kmp_search2(const string& p, const string& s, const vl& b,
                 const vl& match_length) {
  l j = 0;
  l s_size = s.size();
  l p_size = p.size();
  for (l i = 0; i < s_size; i++) {
    while (j > -1 && p[j] != s[i]) j = b[j];
    j++;
    if ((s_size - i - 2 >= 0) and (match_length[s_size - i - 2] + j >= p_size))
      return true;
  }
  return false;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  string s;
  while (cin >> s) {
    l tcc;
    cin >> tcc;
    string rs = s;
    reverse(rs.begin(), rs.end());
    l answer = 0;
    while (tcc--) {
      string p;
      cin >> p;
      if (p.size() < 2) continue;
      vl match_length(s.size());
      auto b = kmp_build_back(p);
      if (kmp_search1(p, s, b, match_length)) {
        answer++;
        continue;
      }
      reverse(p.begin(), p.end());
      b = kmp_build_back(p);
      if (kmp_search2(p, rs, b, match_length)) {
        answer++;
      }
    }
    cout << answer << '\n';
  }
  return 0;
}
