{
TASK:NUMBER
LANG:PASCAL
}
var i,j,n,k,br:longint;
c:array[0..23] of byte;
a:array[1..3] of byte;
b:array[0..9,0..10] of byte;
b1:array[10..102] of byte;
procedure rec(count:byte);
var i,j:byte;
begin
if count=0 then for i:=1 to 9 do
                 for j:=1 to b[i,0] do
                        begin
                        c[0]:=2;
                        c[1]:=i;
                        c[2]:=b[i,j] mod 10;
                        rec(2);
                        c[0]:=0;
                        end;
if count<>0 then begin
                 if count=n then begin
                                 inc(br);
{                                 for j:=1 to c[0] do write(c[j]);
                                 writeln;
}                                 end
                            else for i:=1 to b[c[c[0]],0] do
                                              begin
                                              c[c[0]+1]:=b[c[c[0]],i] mod 10;
                                              inc(c[0]);
                                              rec(c[0]);
                                              dec(c[0]);
                                              end;
                 end;
end;

begin
read(n);
for i:=1 to 3 do read(a[i]);
for j:=1 to 3 do
 for i:=1 to 100 div a[j] do begin
                             k:=a[j]*i;
                             b1[k]:=1;
                             end;
for i:=10 to 99 do
 if b1[i]=1 then begin
                 inc(b[i div 10,0]);
                 b[i div 10,b[i div 10,0]]:=i;
                 end;
rec(0);
writeln(br);
end.
