#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll dp[1002][102][2],black[1000],white[1000],mins[2],maxs[2],n;
ll recurse(int state,int pos,int len)
{
//cout<<state<<" s "<<pos<<" p "<<endl;
if(pos>=n && len<mins[state])
{
// cout<<state<<" "<<len<<" left"<<endl;
return INT_MAX;}
else if(pos>=n)
{
// cout<<state<<" "<<len<<endl;
return 0;}
if(dp[pos][len][state]!=-1)
return dp[pos][len][state];
ll temp=INT_MAX;
ll temp2,temp3;
temp2=(state==0?white[pos]:black[pos]);
temp3=(state==1?white[pos]:black[pos]);
if(len<mins[state])
temp=min(temp,temp2+recurse(state,pos+1,len+1));
else if(len>=maxs[state])
temp=min(temp,temp3+recurse(!state,pos+1,1));
else{
if(state==0)
temp=min(white[pos]+recurse(state,pos+1,len+1),black[pos]+recurse(!state,pos+1,1));
else temp=min(white[pos]+recurse(!state,pos+1,1),black[pos]+recurse(state,pos+1,len+1));
}
dp[pos][len][state]=temp;
return temp;
}
int main() {
int t;
cin>>t;
while(t--)
{
cin>>n;
memset(dp,-1,sizeof(dp));
memset(black,0,sizeof(black));
memset(white,0,sizeof(white));
for(int i=0;i<50;i++)
{
for(int j=0;j<n;j++)
{
ll temp;
cin>>temp;
if(temp)
white[j]++;
else black[j]++;
}
}
/*for(int i=0;i<n;i++)
{
cout<<white[i]<<" "<<black[i]<<endl;
}*/
cin>>mins[0]>>maxs[0];
cin>>mins[1]>>maxs[1];
ll ans=white[0]+recurse(0,1,1);
ans=min(ans,black[0]+recurse(1,1,1));
if(ans>=INT_MAX)
cout<<-1<<endl;
else cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpsbCBkcFsxMDAyXVsxMDJdWzJdLGJsYWNrWzEwMDBdLHdoaXRlWzEwMDBdLG1pbnNbMl0sbWF4c1syXSxuOwpsbCByZWN1cnNlKGludCBzdGF0ZSxpbnQgcG9zLGludCBsZW4pCnsKICAgICAvL2NvdXQ8PHN0YXRlPDwiIHMgIjw8cG9zPDwiIHAgIjw8ZW5kbDsKICAgICBpZihwb3M+PW4gJiYgbGVuPG1pbnNbc3RhdGVdKQogICAgIHsKICAgICAJLy8gY291dDw8c3RhdGU8PCIgIjw8bGVuPDwiIGxlZnQiPDxlbmRsOwogICAgIHJldHVybiBJTlRfTUFYO30KICAgICBlbHNlIGlmKHBvcz49bikKICAgICB7CiAgICAgCS8vIGNvdXQ8PHN0YXRlPDwiICI8PGxlbjw8ZW5kbDsKICAgICByZXR1cm4gMDt9CiAgICAgaWYoZHBbcG9zXVtsZW5dW3N0YXRlXSE9LTEpCiAgICAgcmV0dXJuIGRwW3Bvc11bbGVuXVtzdGF0ZV07CiAgICAgbGwgdGVtcD1JTlRfTUFYOwogICAgIGxsIHRlbXAyLHRlbXAzOwogICAgIHRlbXAyPShzdGF0ZT09MD93aGl0ZVtwb3NdOmJsYWNrW3Bvc10pOwogICAgIHRlbXAzPShzdGF0ZT09MT93aGl0ZVtwb3NdOmJsYWNrW3Bvc10pOwogICAgIGlmKGxlbjxtaW5zW3N0YXRlXSkKICAgICB0ZW1wPW1pbih0ZW1wLHRlbXAyK3JlY3Vyc2Uoc3RhdGUscG9zKzEsbGVuKzEpKTsKICAgICBlbHNlIGlmKGxlbj49bWF4c1tzdGF0ZV0pCiAgICAgdGVtcD1taW4odGVtcCx0ZW1wMytyZWN1cnNlKCFzdGF0ZSxwb3MrMSwxKSk7CiAgICAgZWxzZXsKICAgICAJaWYoc3RhdGU9PTApCiAgICAgCXRlbXA9bWluKHdoaXRlW3Bvc10rcmVjdXJzZShzdGF0ZSxwb3MrMSxsZW4rMSksYmxhY2tbcG9zXStyZWN1cnNlKCFzdGF0ZSxwb3MrMSwxKSk7CiAgICAgCWVsc2UgdGVtcD1taW4od2hpdGVbcG9zXStyZWN1cnNlKCFzdGF0ZSxwb3MrMSwxKSxibGFja1twb3NdK3JlY3Vyc2Uoc3RhdGUscG9zKzEsbGVuKzEpKTsKICAgICB9CiAgICAgZHBbcG9zXVtsZW5dW3N0YXRlXT10ZW1wOwogICAgIHJldHVybiB0ZW1wOwp9CmludCBtYWluKCkgewoJCglpbnQgdDsKCWNpbj4+dDsKCXdoaWxlKHQtLSkKCXsKCSAgICBjaW4+Pm47CgkgICAgbWVtc2V0KGRwLC0xLHNpemVvZihkcCkpOwoJICAgIG1lbXNldChibGFjaywwLHNpemVvZihibGFjaykpOwoJICAgIG1lbXNldCh3aGl0ZSwwLHNpemVvZih3aGl0ZSkpOwoJICAgIGZvcihpbnQgaT0wO2k8NTA7aSsrKQoJICAgIHsKCSAgICAgICAgZm9yKGludCBqPTA7ajxuO2orKykKCSAgICAgICAgewoJICAgICAgICAgICAgbGwgdGVtcDsKCSAgICAgICAgICAgIGNpbj4+dGVtcDsKCSAgICAgICAgICAgIGlmKHRlbXApCgkgICAgICAgICAgICB3aGl0ZVtqXSsrOwoJICAgICAgICAgICAgZWxzZSBibGFja1tqXSsrOwoJICAgICAgICB9CgkgICAgfQoJICAgIAoJICAgIC8qZm9yKGludCBpPTA7aTxuO2krKykKCSAgICB7CgkgICAgCWNvdXQ8PHdoaXRlW2ldPDwiICI8PGJsYWNrW2ldPDxlbmRsOwoJICAgIH0qLwoJICAgIGNpbj4+bWluc1swXT4+bWF4c1swXTsKCSAgICBjaW4+Pm1pbnNbMV0+Pm1heHNbMV07CgkgICAgbGwgYW5zPXdoaXRlWzBdK3JlY3Vyc2UoMCwxLDEpOwoJICAgIGFucz1taW4oYW5zLGJsYWNrWzBdK3JlY3Vyc2UoMSwxLDEpKTsKCSAgICBpZihhbnM+PUlOVF9NQVgpCgkgICAgY291dDw8LTE8PGVuZGw7CgkgICAgZWxzZSBjb3V0PDxhbnM8PGVuZGw7Cgl9CgoJcmV0dXJuIDA7Cn0=