{
TASK:water
LANG:PASCAL
}
var
	pos  	:	array[1..200,1..200] of boolean;
	br   	: integer;
	v,k	: integer;
        a1,a2,b1,b2,c1,c2       : integer;

procedure add(x,y,l	: integer);
var
	Z				: integer;
begin
	z:=v-x-y;
        if ((x=1) or (y=1) or (z=1)) and (l<=k) then
           begin
		inc(br);
                exit;
           end;
	if (l>k) or pos[x,y] then
		exit;
	pos[x,y]:=true;
	if (x>a2) and ((y+(x-a2))<=v) then
		add(a2,y+(x-a2),l+1+1);
	if (x>a1) and ((y+(x-a1))<=v) then
		add(a1,y+(x-a1),l+1);
	if (x>a2) and ((z+(x-a2))<=v) then
		add(a2,y,l+1);
	if (x>a1) and ((z+(x-a1))<=v) then
		add(a1,y,l+1);

	if (z>c2) and ((x+(z-c2))<=v) then
		add(x+(z-c2),y,l+1);
	if (z>c1) and ((x+(z-c1))<=v) then
		add(X+(z-c1),y+(x-a1),l+1);
	if (z>c2) and ((y+(z-c2))<=v) then
		add(x,y+(z-c2),l+1);
	if (z>c1) and ((z+(x-a1))<=v) then
		add(x,y+(z-c1),l+1);

	if (y>b2) and ((x+(y-b2))<=v) then
		add(x+(y-b2),b2,l+1);
	if (y>b1) and ((x+(y-b1))<=v) then
		add(X+(y-b1),b1,l+1);
	if (y>b2) and ((z+(y-b2))<=v) then
		add(x,b2,l+1);
	if (y>b1) and ((z+(y-b1))<=v) then
		add(x,b1,l+1);


	if (x<a1) and (y>=(a1-x)) then
		add(a1,y-(a1-x),l+1);
	if (x<a2) and (y>=(a2-x)) then
		add(a2,y-(a2-x),l+1);
	if (x<a1) and (z>=(a1-x)) then
		add(a1,y,l+1);
	if (x<a2) and (z>=(a2-x)) then
		add(a2,y,l+1);


	if (y<b1) and (x>=(b1-y)) then
		add(x-(b1-y),b1,l+1);
	if (y<b2) and (x>=(b2-y)) then
		add(x-(b2-y),b2,l+1);
	if (y<b1) and (z>=(b1-y)) then
		add(x,b1,l+1);
	if (y<b2) and (z>=(b2-y)) then
		add(x,b2,l+1);


	if (z<c1) and (x>=(c1-z)) then
		add(x-(c1-z),y,l+1);
	if (z<c2) and (x>=(c2-z)) then
		add(x-(c2-z),y,l+1);
	if (z<c1) and (y>=(c1-z)) then
		add(x,y-(c1-z),l+1);
	if (z<c2) and (y>=(c2-z)) then
		add(x,y-(c2-z),l+1);
	pos[x,y]:=false;
end;

begin
	readln(v,k);
        readln(a1,a2,b1,b2,c1,c2);
	br:=0;
	add(20,0,0);
	writeln(br);
end.