#include #include #include #include using namespace std; const int maxn = 100000 + 5; int dp[maxn][3]; char s[maxn]; void upmax(int &a, int b) { a = max(a, b); } int main() { int T; scanf("%d", &T); while(T--) { int n, k; scanf("%d%d", &n, &k); scanf("%s", s + 1); k = n - k; bool flag = false; for(int i = 0; i < 3; ++i) dp[0][i] = -maxn; dp[0][0] = 0; for(int i = 1; i <= n; ++i) { for(int j = 0; j < 3; ++j) dp[i][j] = -maxn; int c = s[i] - '0'; if(c == 0) flag = true; for(int j = 0; j < 3; ++j) { if(dp[i - 1][j] < 0) continue; upmax(dp[i][j], dp[i - 1][j]); if((dp[i - 1][j] != 0 || c != 0) && dp[i - 1][j] + 1 <= k) upmax(dp[i][(j + c) % 3], dp[i - 1][j] + 1); } } if(dp[n][0] == k || (k == 1 && flag)) puts("yes"); else puts("no"); } return 0; }