#include<stdio.h>
int main()
{
int a,b,c,d,e,f,g,i,k,l2,l1,l3,j=0,o=0;
for(i=0;;i++)
{
scanf("%d%d%d%d%d%d",&a,&b,&c,&d,&e,&f);
if(a==0&&b==0&&c==0&&d==0&&e==0&&f==0)break;
l3=8-c%8;//计算3*3*3未补满的格数
switch(l3)//算出3*3*3未补满的格数可以加几个2*2*2
{
case 1:l2=1;break;
case 2:l2=3;break;
case 3:l2=5;break;
case 4:l2=9;break;
case 5:l2=11;break;
case 6:l2=15;break;
case 7:l2=17;break;
default:l2=0;
}
if(l2!=0) o=1;
l2=19*d+l2;//l2为3与4可为2*2*2提供的空余的格数
l2>b?g=0:(g=(b-l2)/27);//判断为2*2*2所提供的格数是否足够,g为为2多加的箱子 ,一个箱子可以放27个2*2*2
if(27*g<b-12){g++;j=1;}
l1=(6*6*6-5*5*5)*e+(6*6*6-4*4*4)*d+l2*2*2*2+g+6*6*6-2*2*2*b;//剩余的1*1*1格数
l2==0?(c=c/8):(c=c/8+1);//判断3的箱子数
l1>a?(k=f+e+c+g):((a-l1)%216==0?k=f+e+c+g+(a-l1)/216:k=f+e+d+c+g+(a-l1)/6*6*6+1);//总箱子数
printf("%d ",k);
}
}