#include <bits/stdc++.h>
#define int int64_t
signed main() {
  int tt;
  std::cin >> tt;
  std::vector<int> ans;
  while(tt--) {
    int n, k;
    std::cin >> n >> k;
    std::vector<int> a(n + 1);
    for(int i = 1; i <= n; i++) {
      std::cin >> a[i];
    }
    int sum = 0;
    for(int i = 1; i <= n; i++) {
      sum += a[i];
    }
    if(sum % 2) {
      ans.push_back(1);
      continue;
    }
    // sum % 2 == 0
    if(k == 1) {
      ans.push_back(sum % 2);
      continue;
    }
    assert(k == 2);
    int cnt = 0;
    for(int i = 1; i <= n; i++) {
      cnt += a[i] % 2;
    }
    int e = 0;
    for(int i = 1; i <= n; i++) {
      e += a[i] / 2;
    }
    if(e % 2 == 0) {
      ans.push_back(cnt % 2);
    }
    else {
      ans.push_back((cnt % 2) ^ 1);
    }
  }
  for(int i = 0; i < ans.size(); i++) {
    std::cout << ans[i];
  }
}
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... | 
| # | Verdict  | Execution time | Memory | Grader output | 
|---|
| Fetching results... |