#include using namespace std; const int N = 1002, mod = 1000000007; long long dp[N][N][2]; char str[N]; int main() { int n, k; scanf("%d %d", &n, &k); scanf("%s", str + 1); reverse(str + 1, str + n + 1); dp[0][0][0] = 1; for(int i = 1; i <= n; i++) { for(int j = 0; j <= k; j++) { if(str[i] == '1') { //0 if(j > 0) dp[i][j][0] += dp[i-1][j-1][0]; //1 dp[i][j][1] += dp[i-1][j][0] + dp[i-1][j][1]; //2 if(j > 0) dp[i][j][1] += dp[i-1][j-1][1]; } else { //0 dp[i][j][0] += dp[i-1][j][0]; //1 if(j > 0) dp[i][j][0] += dp[i-1][j-1][1] + dp[i-1][j-1][0]; //2 dp[i][j][1] += dp[i-1][j][1]; } dp[i][j][0] %= mod; dp[i][j][1] %= mod; //printf("%d %d: %d %d\n", i, j, dp[i][j][0], dp[i][j][1]); } } printf("%lld\n", (dp[n][k][0] + dp[n][k-1][1]) % mod); }