//7-1 冒险者分队
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define endl '\n'
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
void solve()
{
vector<int>a(3),b(3),c(3);
int sum1=0,sum2=0;
for(int i=0;i<3;i++)
{
cin>>a[i];
sum1+=a[i];
}
for(int i=0;i<3;i++)
{
cin>>b[i];
sum2+=b[i];
}
for(int i=0;i<3;i++)
{
c[i]=a[i]-b[i];
}
bool flag=1;
if(sum1!=sum2)flag=0;
int mod=(c[0]%3+3)%3;
for(int i=1;i<3;i++)
{
if((c[i]%3+3)%3!=mod)flag=0;
}
for(int i=0;i<3;i++)
{
if((c[i]%20+20)%20!=0)flag=0;
c[i]/=20;
}
if(!flag)
{
cout<<-1<<endl;
return;
}
int x=min({c[0],c[1],c[2]});
int z=max({c[0],c[1],c[2]});
int y=c[0]+c[1]+c[2]-x-z;
int ans=0;
ans+=(-y);
z+=y*2;
x-=y;
y=0;
ans+=z/3*2;
cout<<ans<<endl;
}
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t=1;
cin>>t;
while(t--)
{
solve();
}
return 0;
}
//7-2 拼题A打卡奖励
#pragma GCC optimize(2)
#pragma GCC optimize(3)
#include<bits/stdc++.h>
#define int long long
#define fi first
#define se second
#define endl '\n'
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> PII;
const int INF=0x3f3f3f3f;
void solve()
{
int n,m;
cin>>n>>m;
// if(n*m>=1e4)
// {
// vector<PII>a(n+1);
// for(int i=0;i<n;i++)
// {
// int x;
// cin>>x;
// a[i].se=x;
// }
// for(int i=0;i<n;i++)
// {
// int x;
// cin>>x;
// a[i].fi=x;
// }
// sort(a.begin(),a.end(),[&](PII a,PII b)
// {
// if(a.fi!=b.fi)return a.fi>b.fi;
// else return a.se<b.se;
// });
// int sum=0;
// for(int i=0;i<n;i++)
// {
// if(a[i].se<=m)
// {
// sum+=a[i].fi;
// m-=a[i].se;
// }
// }
// cout<<sum<<endl;
// return;
// }
vector<int>t(n+10),c(n+1);
//vector<vector<int>>dp(n+1,vector<int>(m+1,0));
//vector<int>dp(m+1);//dp[i]表示时间最大为i时能获得的最大金币值
vector<int>dp(3e4+10,INF);//dp[i]表示金币最大为i时所需要的最小时间
dp[0]=0;
for(int i=1;i<=n;i++)cin>>t[i];
for(int i=1;i<=n;i++)cin>>c[i];
for(int i=1;i<=n;i++)
{
for(int j=3e4;j>=c[i];j--)
{
dp[j]=min(dp[j],dp[j-c[i]]+t[i]);
}
}
int res=0;
for(int i=0;i<=3e4;i++)
{
if(dp[i]<=m)res=i;
}
cout<<res<<endl;
}
//dp
signed main()
{
ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
int t=1;
while(t--)
{
solve();
}
return 0;
}