Example

Input

6 3
1 0 0 1 0 1
1 3 2


Output

1
#include<bits/stdc++.h>
using namespace std;

using ll=long long;
ll solve(vector<int> org,vector<int> tar){
    ll res=0;
    for(int i=0;i<org.size();i++){
        if(org[i]!=tar[i]){
            if(i+1==org.size()){
                return ll(1e10);
            }
            for(int j=i+1;j<org.size();j++){
                if(tar[i]==org[j]){
                    res+=j-i;
                    swap(org[i],org[j]);
                    break;
                }
                if(j+1==org.size()){
                    return ll(1e10);
                }
            }
        }
    }
    return res;
}

int main(){
    int n,m;
    cin>>n>>m;
    vector<int> b(n);
    for(int i=0;i<n;i++) cin>>b[i];
    vector<int> p(n);
    for(int i=0;i<m;i++) cin>>p[i];

    vector<int> runlen(n);
    int bit=0;
    int index=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<p[i];j++){
            runlen[index++]=bit;
        }
        bit=!bit;
    }
    
    ll res=solve(b,runlen);
    bit=1;
    index=0;
    for(int i=0;i<m;i++){
        for(int j=0;j<p[i];j++){
            runlen[index++]=bit;
        }
        bit=!bit;
    }
    res=min(res,solve(b,runlen));
    cout<<res<<endl;
    return 0;
}
