#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)
{
if(pos>=n && len<mins[state])
return INT_MAX;
if(pos>=n)
return 0;
if(len>=maxs[state])
return INT_MAX;
if(dp[pos][len][state]!=-1)
return dp[pos][len][state];
ll temp=INT_MAX,temp1;
if(state==0)
{
temp1=white[pos];
}
else{
temp1=black[pos];
}
len++;
if(len>=mins[state] & pos!=n-1)
temp=min(temp,temp1+recurse(!state,pos+1,0));
temp=min(temp,temp1+recurse(state,pos+1,len));
len--;
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=min(recurse(0,0,0),recurse(1,0,0));
if(ans>=INT_MAX)
cout<<-1<<endl;
else cout<<ans<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGxsOwpsbCBkcFsxMDAyXVsxMDJdWzJdLGJsYWNrWzEwMDBdLHdoaXRlWzEwMDBdLG1pbnNbMl0sbWF4c1syXSxuOwpsbCByZWN1cnNlKGludCBzdGF0ZSxpbnQgcG9zLGludCBsZW4pCnsKICAgIGlmKHBvcz49biAmJiBsZW48bWluc1tzdGF0ZV0pCiAgICByZXR1cm4gSU5UX01BWDsKICAgIGlmKHBvcz49bikKICAgIHJldHVybiAwOwogICAgaWYobGVuPj1tYXhzW3N0YXRlXSkKICAgIHJldHVybiBJTlRfTUFYOwogICAgaWYoZHBbcG9zXVtsZW5dW3N0YXRlXSE9LTEpCiAgICByZXR1cm4gZHBbcG9zXVtsZW5dW3N0YXRlXTsKICAgIGxsIHRlbXA9SU5UX01BWCx0ZW1wMTsKICAgIGlmKHN0YXRlPT0wKQogICAgeyAKICAgICAgICB0ZW1wMT13aGl0ZVtwb3NdOwogICAgfQogICAgZWxzZXsKICAgICAgICB0ZW1wMT1ibGFja1twb3NdOyAKICAgIH0KICAgIGxlbisrOwogICAgaWYobGVuPj1taW5zW3N0YXRlXSAmIHBvcyE9bi0xKQogICAgdGVtcD1taW4odGVtcCx0ZW1wMStyZWN1cnNlKCFzdGF0ZSxwb3MrMSwwKSk7IAogICAgdGVtcD1taW4odGVtcCx0ZW1wMStyZWN1cnNlKHN0YXRlLHBvcysxLGxlbikpOwogICAgbGVuLS07CiAgICBkcFtwb3NdW2xlbl1bc3RhdGVdPXRlbXA7CiAgICByZXR1cm4gdGVtcDsKfQppbnQgbWFpbigpIHsKCQoJaW50IHQ7CgljaW4+PnQ7Cgl3aGlsZSh0LS0pCgl7CgkgICAgY2luPj5uOwoJICAgIG1lbXNldChkcCwtMSxzaXplb2YoZHApKTsKCSAgICBtZW1zZXQoYmxhY2ssMCxzaXplb2YoYmxhY2spKTsKCSAgICBtZW1zZXQod2hpdGUsMCxzaXplb2Yod2hpdGUpKTsKCSAgICBmb3IoaW50IGk9MDtpPDUwO2krKykKCSAgICB7CgkgICAgICAgIGZvcihpbnQgaj0wO2o8bjtqKyspCgkgICAgICAgIHsKCSAgICAgICAgICAgIGxsIHRlbXA7CgkgICAgICAgICAgICBjaW4+PnRlbXA7CgkgICAgICAgICAgICBpZih0ZW1wKQoJICAgICAgICAgICAgd2hpdGVbal0rKzsKCSAgICAgICAgICAgIGVsc2UgYmxhY2tbal0rKzsKCSAgICAgICAgfQoJICAgIH0KCSAgICAvKmZvcihpbnQgaT0wO2k8bjtpKyspCgkgICAgewoJICAgIAljb3V0PDx3aGl0ZVtpXTw8IiAiPDxibGFja1tpXTw8ZW5kbDsKCSAgICB9Ki8KCSAgICBjaW4+Pm1pbnNbMF0+Pm1heHNbMF07CgkgICAgY2luPj5taW5zWzFdPj5tYXhzWzFdOwoJICAgIGxsIGFucz1taW4ocmVjdXJzZSgwLDAsMCkscmVjdXJzZSgxLDAsMCkpOwoJICAgIGlmKGFucz49SU5UX01BWCkKCSAgICBjb3V0PDwtMTw8ZW5kbDsKCSAgICBlbHNlIGNvdXQ8PGFuczw8ZW5kbDsKCX0KCglyZXR1cm4gMDsKfQ==
MQozCjAgMCAxCjAgMCAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAwCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMCAxCjAgMCAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAwCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMCAxCjAgMCAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAwCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjAgMSAxCjEgMwoxIDI=
1
3
0 0 1
0 0 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 0
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 0 1
0 0 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 0
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 0 1
0 0 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 0
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
0 1 1
1 3
1 2