/*
TASK: water
LANG: C
*/
#include<stdio.h>

#define MAXN 256
#define MAXA 64
#define MAXV 65536

int ans[MAXV][MAXA],br[MAXV],can[MAXV],u[MAXV],V,k,a[4],d[4][4],res;
char ex[MAXV];

void calc(int e1,int e2)
{
	int i,j,k,t,c1,c2;
	a[0]=e1; a[1]=e2; a[2]=V-e1-e2;
	c1=e1*(V+1)+e2;
	for(i=0;i<3;i++)
	{
		for(j=0;j<3;j++)
		{
			if(i==j) continue;
			for(k=0;k<3;k++)
			{
				if(a[i]>d[i][k])
				{
					t=a[i];
					a[j]+=a[i]-d[i][k];
					a[i]=d[i][k];
					c2=a[0]*(V+1)+a[1];
					if(u[c2]!=c1+1)
					{
						u[c2]=c1+1;
						ans[c1][br[c1]++]=c2;
						if(ex[c2]) can[c1]++;
					}
					a[i]=t;
					a[j]-=a[i]-d[i][k];
				}
			}
			for(k=1;k<3;k++)
			{
				if(a[j]<d[j][k]&&a[i]>=d[j][k]-a[j])
				{
					t=a[j];
					a[i]-=d[j][k]-a[j];
					a[j]=d[j][k];
					c2=a[0]*(V+1)+a[1];
					if(u[c2]!=c1+1)
					{
						u[c2]=c1+1;
						ans[c1][br[c1]++]=c2;
						if(ex[c2]) can[c1]++;
					}
					a[j]=t;
					a[i]+=d[j][k]-a[j];
				}
			}
		}
	}
}

void gen(int v,int dist)
{
	int i;
	res+=can[v];
	if(dist==k-1) return;
	u[v]=1;
	for(i=0;i<br[v];i++)
	{
		if(!u[ans[v][i]]) gen(ans[v][i],dist+1);
	}
	u[v]=0;
}

int main()
{
	int i,j;
	scanf("%d%d",&V,&k);
	for(i=0;i<3;i++) scanf("%d%d",&d[i][1],&d[i][2]);
	for(i=0;i<3;i++)
	{
		a[i]=1;
		for(j=0;j<V;j++)
		{
			if(i==0) { a[0]=1; a[1]=j; }
			else if(i==1) { a[0]=j; a[1]=1; }
			else { a[0]=j; a[1]=V-1-j; }
			ex[a[0]*(V+1)+a[1]]=1;
		}
	}
	for(i=0;i<=V;i++)
	{
		for(j=0;j<=V-i;j++)
		{
			calc(i,j);
		}
	}
	for(i=0;i<MAXV;i++) u[i]=ex[i];
	if(V>1) gen(20*(V+1),0);
	else res=1;
	printf("%d\n",res);
	return 0;
}
