program seifo_kodas;

  const MBK = 5*7*11; { ma‘iausias bendras kartotinis }

  procedure ieskok (n, liek5, liek7, liek11: longint;
                    var kodas, kiek: longint);
    var sk, i, prad: longint;
  begin
    { sudarome ma‘iausi… teigiam… n-‘enkl skai‡i— }
    sk := 1;
    for i := 2 to n do
      sk := sk * 10;
    { perrinksime n-‘enklius skai‡ius, kuri— liekana iž 5 lygi liek5  }
    prad := sk + liek5;
    { dar neradome skai‡iaus tinkamo b–ti seifo kodu }
    kodas := 0;
    while (prad < sk + MBK) and (prad < sk*10) and (kodas = 0) do
    { jei sk dvi‘enklis, tai sk + MBK jau tri‘enklis skai‡ius }
      if (prad mod 7 = liek7) and (prad mod 11 = liek11)
         then kodas := prad
         else prad := prad + 5;
    { rasime sprendini— skai‡i— }
    kiek := (sk * 10 - 1 - kodas) div MBK + 1;
  end; { iežkok }

  var n, liek5, liek7, liek11, kodas, kiek: longint;
begin
  readln (n, liek5, liek7, liek11);
  ieskok (n, liek5, liek7, liek11, kodas, kiek);
  writeln (kiek, ' ', kodas);
end.

