#include <bits/stdc++.h>
using namespace std;
const int N = 201000;
struct str {
  long long nr;
  char c;
};
int n, m;
str a[2 * N], b[N], l[N];
vector<int> poz;
bool cmp(str a, str b) { return (a.nr == b.nr && a.c == b.c); }
int z[2 * N];
void calcpot() {
  int i, j;
  for (i = 1; i <= n; ++i) l[i] = a[i];
  int nr = 0;
  for (i = 2; i < n; ++i) {
    a[++nr] = l[i];
  }
  for (i = 1; i <= m; ++i) a[++nr] = b[i];
  int el, pmax = 0;
  for (i = 2; i <= nr; ++i) {
    if (i >= pmax) {
      for (j = i; cmp(a[j], a[j - i + 1]) && j <= nr; ++j)
        ;
      --j;
      z[i] = j - i + 1;
      pmax = j;
      el = i;
    } else {
      z[i] = min(z[i - el + 1], pmax - i + 1);
      for (j = i + z[i] - 1; cmp(a[j], a[j - i + 1]) && j <= nr; ++j)
        ;
      --j;
      z[i] = j - i + 1;
      if (j > pmax) {
        pmax = j;
        el = i;
      }
    }
    if (i > n - 2 && z[i] >= n - 2) {
      poz.push_back(i - (n - 2));
    }
  }
}
void calc() {
  int i, j;
  calcpot();
  int r = 0;
  for (i = 0; i < poz.size(); ++i) {
    int e = poz[i];
    if (e > 1 && e + n - 2 <= m) {
      if (l[1].c == b[e - 1].c && l[1].nr <= b[e - 1].nr)
        if (l[n].c == b[e + n - 2].c && l[n].nr <= b[e + n - 2].nr) ++r;
    }
  }
  cout << r;
}
int main() {
  int i, j;
  cin >> m >> n;
  for (i = 1; i <= m; ++i) {
    scanf("%I64d-%c ", &b[i].nr, &b[i].c);
    if (i > 1 && b[i].c == b[i - 1].c) {
      b[i - 1].nr += b[i].nr;
      --m;
      --i;
    }
  }
  for (i = 1; i <= n; ++i) {
    scanf("%I64d-%c ", &a[i].nr, &a[i].c);
    if (i > 1 && a[i].c == a[i - 1].c) {
      a[i - 1].nr += a[i].nr;
      --n;
      --i;
    }
  }
  if (n == 1) {
    long long r = 0;
    for (i = 1; i <= m; ++i) {
      if (a[1].c == b[i].c) r += max(0LL, b[i].nr - a[1].nr + 1);
    }
    cout << r;
    return 0;
  }
  if (n == 2) {
    if (m == 1) {
      cout << 0;
      return 0;
    }
    long long r = 0;
    for (i = 1; i < m; ++i) {
      if (a[1].c == b[i].c && a[2].c == b[i + 1].c && a[1].nr <= b[i].nr &&
          a[2].nr <= b[i + 1].nr)
        ++r;
    }
    cout << r;
    return 0;
  }
  if (m < n) {
    cout << 0;
    return 0;
  }
  calc();
  return 0;
}
