#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 12;
bool a[N], b[N], c[N];
int main()
{
	ifstream in, out;
	in.open("input");
	out.open("user_out");
	int n, k;
	in >> n >> k;
	string t;
	in >> t;
	reverse(t.begin(), t.end());
	string s;
	out >> s;
	reverse(s.begin(), s.end());
	if ((int) s.size() != n)
	{
		cout << 0 << endl;
		fprintf(stderr, "Invalid output!");
		return 0;
	}
	for (int i = 0; i <= n - 1; i++)
	{
		if (s[i] != '0' && s[i] != '1')
		{
			cout << 0 << endl;
			fprintf(stderr, "Invalid output!");
			return 0;
		}
		c[i] = t[i] - '0';
		a[i] = s[i] - '0';
	}
	for (int i = 0; i <= n - 1; i++)
		b[i] ^= a[i];
	for (int i = 0; i <= n - 1; i++)
		b[(i + k) % n] ^= a[i];
	for (int i = 0; i <= n - 1; i++)
		if (b[i] != c[i])
		{
			cout << 0 << endl;
			fprintf(stderr, "Wrong construction!");
			return 0;
		}
	cout << 100 << endl;
	fprintf(stderr, "Accepted!");
	return 0;
}
