#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
using namespace std;
const int maxn = 3e5;
int n, k, sz[maxn + 10][2], leader[maxn + 10], ans = 0, dp[maxn + 10];
string s;
vector<int> pos[maxn + 10];
int find_leader(int x)
{
if (x == leader[x])
return x;
int root = find_leader(leader[x]);
dp[x] ^= dp[leader[x]];
leader[x] = root;
return root;
}
int get_cost(int x)
{
x = find_leader(x);
if (x == k + 1)
return sz[x][1];
return min(sz[x][0], sz[x][1]);
}
void connect(int x, int y, int w)
{
int root_x = find_leader(x);
int root_y = find_leader(y);
if (root_x == root_y)
return ;
// cerr << x << ' ' << y << ' ' << root_x << ' ' << root_y << '\n';
w ^= dp[x] ^ dp[y];
ans -= get_cost(root_x);
ans -= get_cost(root_y);
if (root_y == k + 1)
swap(root_x, root_y);
leader[root_y] = root_x;
dp[root_y] = w;
sz[root_x][0] += sz[root_y][w];
sz[root_x][1] += sz[root_y][1 ^ w];
ans += get_cost(root_x);
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("BAI3.INP", "r"))
{
freopen("BAI3.INP", "r", stdin);
freopen("BAI3.OUT", "w", stdout);
}
cin >> n >> k;
cin >> s;
s = ' ' + s;
for (int i = 1; i <= k; i++)
{
int c;
cin >> c;
while(c--)
{
int x;
cin >> x;
pos[x].push_back(i);
}
}
for (int i = 1; i <= k + 1; i++)
{
sz[i][0] = 1;
sz[i][1] = 0;
leader[i] = i;
dp[i] = 0;
}
for (int i = 1; i <= n; i++)
{
if (pos[i].size())
{
int w = 1 ^ (s[i] - '0');
int x = pos[i].front();
int y = pos[i].back();
if (x == y)
connect(x, k + 1, w);
else
connect(x, y, w);
}
cout << ans, el;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBtYXhuID0gM2U1OwoKaW50IG4sIGssIHN6W21heG4gKyAxMF1bMl0sIGxlYWRlclttYXhuICsgMTBdLCBhbnMgPSAwLCBkcFttYXhuICsgMTBdOwpzdHJpbmcgczsKdmVjdG9yPGludD4gcG9zW21heG4gKyAxMF07CgppbnQgZmluZF9sZWFkZXIoaW50IHgpCnsKICAgIGlmICh4ID09IGxlYWRlclt4XSkKICAgICAgICByZXR1cm4geDsKICAgIGludCByb290ID0gZmluZF9sZWFkZXIobGVhZGVyW3hdKTsKICAgIGRwW3hdIF49IGRwW2xlYWRlclt4XV07CiAgICBsZWFkZXJbeF0gPSByb290OwogICAgcmV0dXJuIHJvb3Q7Cn0KaW50IGdldF9jb3N0KGludCB4KQp7CiAgICB4ID0gZmluZF9sZWFkZXIoeCk7CiAgICBpZiAoeCA9PSBrICsgMSkKICAgICAgICByZXR1cm4gc3pbeF1bMV07CiAgICByZXR1cm4gbWluKHN6W3hdWzBdLCBzelt4XVsxXSk7Cn0Kdm9pZCBjb25uZWN0KGludCB4LCBpbnQgeSwgaW50IHcpCnsKICAgIGludCByb290X3ggPSBmaW5kX2xlYWRlcih4KTsKICAgIGludCByb290X3kgPSBmaW5kX2xlYWRlcih5KTsKICAgIGlmIChyb290X3ggPT0gcm9vdF95KQogICAgICAgIHJldHVybiA7Ci8vICAgIGNlcnIgPDwgeCA8PCAnICcgPDwgeSA8PCAnICcgPDwgcm9vdF94IDw8ICcgJyA8PCByb290X3kgPDwgJ1xuJzsKICAgIHcgXj0gZHBbeF0gXiBkcFt5XTsKICAgIGFucyAtPSBnZXRfY29zdChyb290X3gpOwogICAgYW5zIC09IGdldF9jb3N0KHJvb3RfeSk7CiAgICBpZiAocm9vdF95ID09IGsgKyAxKQogICAgICAgIHN3YXAocm9vdF94LCByb290X3kpOwogICAgbGVhZGVyW3Jvb3RfeV0gPSByb290X3g7CiAgICBkcFtyb290X3ldID0gdzsKICAgIHN6W3Jvb3RfeF1bMF0gKz0gc3pbcm9vdF95XVt3XTsKICAgIHN6W3Jvb3RfeF1bMV0gKz0gc3pbcm9vdF95XVsxIF4gd107CiAgICBhbnMgKz0gZ2V0X2Nvc3Qocm9vdF94KTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiQkFJMy5JTlAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4oIkJBSTMuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbigiQkFJMy5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IG4gPj4gazsKICAgIGNpbiA+PiBzOwogICAgcyA9ICcgJyArIHM7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBrOyBpKyspCiAgICB7CiAgICAgICAgaW50IGM7CiAgICAgICAgY2luID4+IGM7CiAgICAgICAgd2hpbGUoYy0tKQogICAgICAgIHsKICAgICAgICAgICAgaW50IHg7CiAgICAgICAgICAgIGNpbiA+PiB4OwogICAgICAgICAgICBwb3NbeF0ucHVzaF9iYWNrKGkpOwogICAgICAgIH0KICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IGsgKyAxOyBpKyspCiAgICB7CiAgICAgICAgc3pbaV1bMF0gPSAxOwogICAgICAgIHN6W2ldWzFdID0gMDsKICAgICAgICBsZWFkZXJbaV0gPSBpOwogICAgICAgIGRwW2ldID0gMDsKICAgIH0KICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgIHsKICAgICAgICBpZiAocG9zW2ldLnNpemUoKSkKICAgICAgICB7CiAgICAgICAgICAgIGludCB3ID0gMSBeIChzW2ldIC0gJzAnKTsKICAgICAgICAgICAgaW50IHggPSBwb3NbaV0uZnJvbnQoKTsKICAgICAgICAgICAgaW50IHkgPSBwb3NbaV0uYmFjaygpOwogICAgICAgICAgICBpZiAoeCA9PSB5KQogICAgICAgICAgICAgICAgY29ubmVjdCh4LCBrICsgMSwgdyk7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIGNvbm5lY3QoeCwgeSwgdyk7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgYW5zLCBlbDsKICAgIH0KfQo=