Example

Input

6 3
1 0 0 1 0 1
1 3 2


Output

1
#include <bits/stdc++.h>

int main() {
  int N, M;
  int p[16];
  int temp;
  
  std::vector<int> v;
  std::cin >> N >> M;
  for(int i = 0; i < N; ++i) {
    std::cin >> temp;
    if( temp == 1 ) {
      v.push_back(i);
    }
  }
  for(int i = 0; i < M; ++i) {
    std::cin >> p[i];
  }

  std::vector<int> tv;
  std::vector<int> f[2];
  for(int k = 0; k < 2; ++k) {
    std::vector<int> tv;
    for(int i = 0; i < M; ++i) {
      for(int j = 0; j < p[i]; ++j) {
        tv.push_back((i + k) % 2);
      }
    }
    for(int i = 0; i < N; ++i) {
      if( tv[i] == 1 ) {
        f[k].push_back(i);
      }
    }
  }
  
  int res = 1000000;
  for(int k = 0; k < 2; ++k) {
    if( f[k].size() == v.size() ) {
      int tres = 0;
      for(int i = 0; i < (int)f[k].size(); ++i) {
        tres += abs(f[k][i] - v[i]);
      }
      res = std::min(res, tres);
    }
  }

  std::cout << res << std::endl;
  return 0;
}

  