#include<iostream>
#include<cstdio>
using namespace std;
int main(){
int q,a2,a3,a4,b4,b6;
scanf("%d",&q);
while(q--){
scanf("%d%d%d%d%d",&a2,&a3,&a4,&b4,&b6);
int dp[a2+5][a3+5][a4+5][b4+5][b6+5]={0};
for(int i=0;i<=a2;i++)
for(int j=0;j<=a3;j++)
for(int k=0;k<=a4;k++)
for(int l=0;l<=b4;l++)
for(int m=0;m<=b6;m++){
//分情况
//1.4桌
dp[i+1][j][k][l+1][m]=max(dp[i+1][j][k][l+1][m],dp[i][j][k][l][m]+2);
dp[i][j+1][k][l+1][m]=max(dp[i][j+1][k][l+1][m],dp[i][j][k][l][m]+3);
dp[i][j][k+1][l+1][m]=max(dp[i][j][k+1][l+1][m],dp[i][j][k][l][m]+4);
dp[i+2][j][k][l+1][m]=max(dp[i+2][j][k][l+1][m],dp[i][j][k][l][m]+4);
//2.6桌
dp[i+1][j][k][l][m+1]=max(dp[i+1][j][k][l][m+1],dp[i][j][k][l][m]+2);
dp[i][j+1][k][l][m+1]=max(dp[i][j+1][k][l][m+1],dp[i][j][k][l][m]+3);
dp[i][j][k+1][l][m+1]=max(dp[i][j][k+1][l][m+1],dp[i][j][k][l][m]+4);
dp[i+2][j][k][l][m+1]=max(dp[i+2][j][k][l][m+1],dp[i][j][k][l][m]+4);
dp[i+1][j+1][k][l][m+1]=max(dp[i+1][j+1][k][l][m+1],dp[i][j][k][l][m]+5);
dp[i+1][j][k+1][l][m+1]=max(dp[i+1][j][k+1][l][m+1],dp[i][j][k][l][m]+6);
dp[i+3][j][k][l][m+1]=max(dp[i+3][j][k][l][m+1],dp[i][j][k][l][m]+6);
dp[i][j+2][k][l][m+1]=max(dp[i][j+2][k][l][m+1],dp[i][j][k][l][m]+6);
}
printf("%d\n",dp[a2][a3][a4][b4][b6]);
}
// system("pause");
return 0;
}