#include<bits/stdc++.h>

using namespace std;
#define _MOD 1000000007

long long counts[1001][2][1001];

int main() {
	long long n,k;
	cin >> n >> k;
	string s;
	cin >> s;
	vector<long long> v(n);
	for (long long i = 0; i < n; ++i) {
		if (s[i] == '1') {
			v[i] = 1;
		}
	}
	//counts[0][0][1] = 1;
	counts[0][0][0] = 1;
	for (long long i = 0; i < n; ++i) {
		for (long long t = 0; t <= 1; ++t) {
			for (long long r = 0; r <= 1000; ++r) {
				// dame 1
				long long rem = t ^ v[n - i -1] ^ 1;
				long long add = t | v[n - i - 1];
				counts[i + 1][add][rem + r] = (counts[i][t][r] + counts[i + 1][add][rem + r]) % _MOD;

				// dame 0
				rem = t ^ v[n - i - 1];
				add = t & v[n - i - 1];
			        counts[i + 1][add][rem + r] = (counts[i][t][r] + counts[i + 1][add][rem + r]) % _MOD;
			}
		}
	}
	cout << (counts[n][0][k] + counts[n][1][max(k - 1, 0ll)]) %_MOD << endl;


	
  return 0;
}
