#include<bits/stdc++.h>
using namespace std;
#define pi pair<int,int>
#define pii pair<pi,int>
#define mp make_pair
#define pb push_back
#define F first
#define S second
#define all(x) x.begin(), x.end()
#define sortall(x) sort(all(x))
#define lli long long int
#define f(i,a,b) for (lli i = a; i <= b; i++)
#define fr(i,a,b) for (lli i = a; i >= b; i--)
#define mod 1000000007
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
vector<lli> a, b;
lli n, m;
string funBinary(lli fuck)
{
string s = bitset<64> (fuck).to_string();
const auto loc1 = s.find('1');
if (loc1 != string::npos)
return s.substr(loc1);
return "0";
}
lli dp[10005][10005];
lli getMaxCommon()
{
f(i, 0, n)
f(j, 0, m)
dp[i][j] = 0;
// memset(dp, 0, sizeof(dp));
fr(i, n - 1, 0)
fr(j, m - 1, 0)
{
if (a[i] == b[j])
dp[i][j] = dp[i + 1][j + 1] + 1;
}
lli mx = 0;
f(i, 0, n - 1)
f(j, 0, m - 1)
mx = max(mx, dp[i][j]);
return mx;
}
void solve()
{
cin >> n >> m;
a.resize(n);
b.resize(m);
string strA, strB;
f(i, 0, n - 1)
cin >> a[i];
cin >> strA;
f(i, 0, m - 1)
cin >> b[i];
cin >> strB;
lli k = getMaxCommon();
lli aa, bb, result;
bb = (lli)strB[k - 1];
aa = (lli)strA[k - 1];
result = (aa ^ bb);
cout << funBinary(result);
cout << "\n";
}
int main()
{
IOS;
lli t;
cin >> t;
while (t--)
solve();
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBwaSBwYWlyPGludCxpbnQ+CiNkZWZpbmUgcGlpIHBhaXI8cGksaW50PgojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawojZGVmaW5lIEYgZmlyc3QKI2RlZmluZSBTIHNlY29uZAojZGVmaW5lIGFsbCh4KSB4LmJlZ2luKCksIHguZW5kKCkKI2RlZmluZSBzb3J0YWxsKHgpIHNvcnQoYWxsKHgpKQojZGVmaW5lIGxsaSBsb25nIGxvbmcgaW50CiNkZWZpbmUgZihpLGEsYikgZm9yIChsbGkgaSA9IGE7IGkgPD0gYjsgaSsrKQojZGVmaW5lIGZyKGksYSxiKSBmb3IgKGxsaSBpID0gYTsgaSA+PSBiOyBpLS0pCiNkZWZpbmUgbW9kIDEwMDAwMDAwMDcKI2RlZmluZSBJT1MgaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwoKdmVjdG9yPGxsaT4gYSwgYjsKbGxpIG4sIG07CgpzdHJpbmcgZnVuQmluYXJ5KGxsaSBmdWNrKQp7CglzdHJpbmcgcyA9IGJpdHNldDw2ND4gKGZ1Y2spLnRvX3N0cmluZygpOwoJY29uc3QgYXV0byBsb2MxID0gcy5maW5kKCcxJyk7CglpZiAobG9jMSAhPSBzdHJpbmc6Om5wb3MpCgkJcmV0dXJuIHMuc3Vic3RyKGxvYzEpOwoJcmV0dXJuICIwIjsKfQpsbGkgZHBbMTAwMDVdWzEwMDA1XTsKbGxpIGdldE1heENvbW1vbigpCnsKCWYoaSwgMCwgbikKCWYoaiwgMCwgbSkKCWRwW2ldW2pdID0gMDsKCS8vIG1lbXNldChkcCwgMCwgc2l6ZW9mKGRwKSk7CglmcihpLCBuIC0gMSwgMCkKCWZyKGosIG0gLSAxLCAwKQoJewoJCWlmIChhW2ldID09IGJbal0pCgkJCWRwW2ldW2pdID0gZHBbaSArIDFdW2ogKyAxXSArIDE7Cgl9CglsbGkgbXggPSAwOwoJZihpLCAwLCBuIC0gMSkKCWYoaiwgMCwgbSAtIDEpCglteCA9IG1heChteCwgZHBbaV1bal0pOwoJcmV0dXJuIG14Owp9Cgp2b2lkIHNvbHZlKCkKewoJY2luID4+IG4gPj4gbTsKCWEucmVzaXplKG4pOwoJYi5yZXNpemUobSk7CglzdHJpbmcgc3RyQSwgc3RyQjsKCWYoaSwgMCwgbiAtIDEpCgljaW4gPj4gYVtpXTsKCWNpbiA+PiBzdHJBOwoJZihpLCAwLCBtIC0gMSkKCWNpbiA+PiBiW2ldOwoJY2luID4+IHN0ckI7CglsbGkgayA9IGdldE1heENvbW1vbigpOwoJbGxpIGFhLCBiYiwgcmVzdWx0OwoJCgliYiA9IChsbGkpc3RyQltrIC0gMV07CglhYSA9IChsbGkpc3RyQVtrIC0gMV07CgkKCXJlc3VsdCA9IChhYSBeIGJiKTsKCQoJY291dCA8PCBmdW5CaW5hcnkocmVzdWx0KTsKCWNvdXQgPDwgIlxuIjsKfQppbnQgbWFpbigpCnsKICAgIElPUzsKCWxsaSB0OwoJY2luID4+IHQ7Cgl3aGlsZSAodC0tKQoJCXNvbHZlKCk7CglyZXR1cm4gMDsKfQ==