Example

Input

6 3
1 0 0 1 0 1
1 3 2


Output

1
#include <bits/stdc++.h>
#define int long long
#define rep(i,n) for(int i=0;i<n;i++)
#define Rep(i,a,b) for(int i=a;i<b;i++)
#define REP(i,a,b) for(int i=a;i<=b;i++)
#define itrep(it,v) for(auto it=(v).begin();it!=(v).end();it++)
#define rev(i,n) for(int i=n-1;i>=0;i--)
#define vi vector<int>
#define pb push_back
#define pi pair<int,int>
#define vp vector<pair<int,int> >
#define mp make_pair
#define all(v) (v).begin(),(v).end()
using namespace std;

int ans=1000000000000000ll;
void foo(int n,vi b,vi a){
    int c=0;
    rep(i,n){
        if(b[i]!=a[i]){
            int j;
            for(j=i+1;j<n&&b[j]!=a[i];j++);
            if(j==n)return;
            for(;j>i;j--)swap(b[j],b[j-1]),c++;
        }
    }
    ans=min(ans,c);
}
            
signed main(){
    int n,m;
    cin>>n>>m;
    vi b(n);
    rep(i,n)cin>>b[i];
    vi p(m);
    rep(i,m)cin>>p[i];
    vi a(n);
    int c=0;
    int f=0;
    rep(i,m){
        rep(j,p[i]){
            a[c++]=f;
        }
        f=!f;
    }
    foo(n,b,a);
    rep(i,n)a[i]=!a[i];
    foo(n,b,a);
    cout<<ans<<endl;
    return 0;
}
