#include <iostream>
#include <algorithm>
using namespace std;
int n, m, ad, bd, s, ans;
bool flag, l, k;
struct S{
int l, v;
};
S a[1010], b[1010];
int main() {
cin >> n >> m;
for (int i = 0; i < n; i++) {
cin >> a[i]. v >> a[i].l;
}
for (int i = 0; i < m; i++) {
cin >> b[i].v >> b[i].l;
}
for (int i = 1, j = 1, sum = 0; min(i, j) < min(n, m) ; sum++) {
if (a[s].l > 0) {
a[s].l--;
ad += a[s].v;
} else {
a[s].l = a[i].l, a[s].v = a[i++].v;
}
if (b[s].l > 0) {
b[s].l--;
bd += b[s].v;
} else {
b[s].l = b[j].l, b[s].v = a[j++].v;
}
if (!l) {
if (ad < bd) {
flag = 1;
ans++, l = 1;
} else if(ad > bd) {
flag = 0;
ans++, l = 1;
}
continue;
}
if (ad < bd) {
k = 1;
} else if(ad > bd) {
k = 0;
}
if (k != flag){
flag = k;
ans++;
}
}
if (n != m) {
ans++;
}
cout << ans << endl;
return 0;
}