#include using namespace std; const long long MOD = 998244353; int main(){ int N, M, K; cin >> N >> M >> K; string X; cin >> X; vector POW(N + 1); POW[0] = 1; for (int i = 0; i < N; i++){ POW[i + 1] = POW[i] * 2 % MOD; } vector> binom(N + 1, vector(N + 1, 0)); for (int i = 0; i <= N; i++){ binom[i][0] = 1; binom[i][i] = 1; for (int j = 1; j < i; j++){ binom[i][j] = (binom[i - 1][j - 1] + binom[i - 1][j]) % MOD; } } vector> dp(M + 1, vector(N + 1, 0)); dp[0][N] = 1; for (int i = 0; i < M; i++){ for (int j = 0; j <= N; j++){ if (X[i] == '0'){ for (int k = 0; k <= j; k++){ long long add = dp[i][j]; add *= POW[N - j]; add %= MOD; add *= binom[j][k]; add %= MOD; dp[i + 1][k] += add; dp[i + 1][k] %= MOD; } } if (X[i] == '1'){ for (int k = 0; k <= min(j, K - 1); k++){ long long add = dp[i][j]; add *= POW[N - j]; add %= MOD; add *= binom[j][k]; add %= MOD; dp[i + 1][j] += add; dp[i + 1][j] %= MOD; } } } } long long ans = 0; for (int i = K; i <= N; i++){ ans += dp[M][i]; } ans %= MOD; cout << ans << endl; }