Example

Input

6 3
1 0 0 1 0 1
1 3 2


Output

1
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(),(x).end()
const int mod=1000000007,MAX=100005,INF=1<<30;

int main(){
    
    std::ifstream in("text.txt");
    std::cin.rdbuf(in.rdbuf());
    cin.tie(0);
    ios::sync_with_stdio(false);
    
    int N,M;cin>>N>>M;
    vector<int> A(N),B(M),C(N),D(N),save;
    for(int i=0;i<N;i++) cin>>A[i];
    for(int i=0;i<M;i++) cin>>B[i];
    
    int now=0;
    for(int i=0;i<M;i++){
        for(int j=0;j<B[i];j++){
            C[now+j]=i%2;
            D[now+j]=1-i%2;
        }
        now+=B[i];
    }
    save=A;
    
    int ans1=0,ans2=0;
    
    for(int i=0;i<N;i++){
        if(A[i]==C[i]) continue;
        else{
            int now=i;
            while(now<N&&A[now]!=C[i]) now++;
            if(now==N){
                ans1=INF;
                break;
            }
            ans1+=now-i;
            for(int j=now;j-1>=i;j--) swap(A[j-1],A[j]);
        }
    }
    A=save;
    
    for(int i=0;i<N;i++){
        if(A[i]==D[i]) continue;
        else{
            int now=i;
            while(now<N&&A[now]!=D[i]) now++;
            if(now==N){
                ans2=INF;
                break;
            }
            ans2+=now-i;
            for(int j=now;j-1>=i;j--) swap(A[j-1],A[j]);
        }
    }
    
    cout<<min(ans1,ans2)<<endl;
}


