 program skaiciai_ant_lapeliu;

{
     Idëja.Pradþioje  surandame paskutiniøjø  dviejø  lapeliø  numerius.Toliau
  ið  to  fakto , kad  skaièiai ant  lapeliø   turi  bûti  nuo 1 iki 100,
  yra  lengva suþinoti skaièiø reikðmes  ant  tø  lapeliø.Ið  gautø  reikðmiø
  toliau lengva  suþinoti skaièiø ant paskutiniojo paðalinto lapelio, toliau -
  skaièiø ant prieð  tai  paðalinto  lapelio ir t.t...
      Galimi tokie  variantai.
      1. Skaièiai   ant  paskutiniøjø  lapeliø  sutampa - tada turime vieninte-
  lá variantà skaièiams ant  kitø  lapeliø  surasti;
      2. Skaièiai   ant  paskutiniøjø  lapeliø  nesutampa - tada turime du
  variantus. Tarkime,  pirmo likusio lapelio  numeris yra  i, antro - j.Tada,
  jeigu a ir b yra  skaièiai, kuriuos reikia  uþraðyti  ant  tø  lapeliø, tai
  galime ant i-tojo  lapleio  raðyti a, o  ant j-tojo  lapelio - b ( pirmas
  variantas), arba ant i-tojo  lapleio  raðyti b,o  ant j-tojo  lapelio - a
  ( antras variantas ).Jeigu abiejais atvëjais gauname korektiðkas  reikðmes
  (ið  intervalo [1,100]) ant  kitø  lapeliø,tai  parenkame tà , kuriam esant
  reikðmë ant 1-jo lapelio yra maþesnë , preiðingu  atvëju  reikia  rinktis
  varianto, kuriame visos reikðmës korektiðkos  - jis  visada egzistuoja, jeigu
  tik pradiniai  duomenys korektiðki.

 }


 const maxN=10000;

 var lapeliai      : array[1..2,1..maxN] of integer; { Galimi du variantai }
     eksperimentas : array[1..3,1..maxN-2] of integer;
     paskutinieji  : array[1..2] of integer;
     N             : integer;
     kuris         : 1..2;
     korektiskas1,korektiskas2    : boolean;

 procedure Pradedame;
  var i:integer;
      f:text;
      pasalinti:array[1..maxN] of boolean;

 begin
  { Nuliai... }
  for i:=1 to maxN do
  begin
   lapeliai[1,i]:=0;
   lapeliai[2,i]:=0;
   pasalinti[i]:=false;
  end;
  { Skaitome }
  assign(f,'LAPELIAI.DAT');
  reset(f);
  readln(f,N);
  for i:=1 to N-2 do begin
    readln(f,eksperimentas[1,i],
             eksperimentas[2,i],
             eksperimentas[3,i]
           );
    pasalinti[eksperimentas[1,i]]:=true;
  end;
  readln(f,eksperimentas[1,N-1]);
  readln(f,eksperimentas[1,N]);
  close(f);

  { Kokie lapeliai liko }
  paskutinieji[1]:=eksperimentas[2,N-2];
  pasalinti[paskutinieji[1]]:=true;
  i:=1;
  while pasalinti[i] do inc(i);
  paskutinieji[2]:=i;

 end;

 procedure Skaiciuojame;
  var i,a,b,kuri:integer;
      radome:boolean;

  function RaskKitus(a,b,kuri:integer):boolean;

    var i:integer;
    begin
     lapeliai[kuri,paskutinieji[1]]:=a;
     lapeliai[kuri,paskutinieji[2]]:=b;

     for i:=N-2 downto 1 do
     begin
      lapeliai[kuri,eksperimentas[1,i]]:=
                  eksperimentas[3,i]-
                  lapeliai[kuri,eksperimentas[2,i]];
      if (lapeliai[kuri,eksperimentas[1,i]]<1) or
         (lapeliai[kuri,eksperimentas[1,i]]>100)
          then begin
          RaskKitus:=false;
          exit;
          end;
     end;
     RaskKitus:=true;
    end;

 begin
  i:=1;
  radome:=false;
  while (i<=100) and not(radome)  do
  begin
   if (eksperimentas[1,N-1] mod i) = 0
     then  begin
      a:=i;
      b:=eksperimentas[1,N-1] div i; { Antras ? }
      if (a+b) = eksperimentas[1,N] then radome:=true;
     end;
     inc(i);
   end;

   if a=b then begin
                RaskKitus(a,b,1);
                kuris:=1;
               end
          else begin
                 korektiskas1:=RaskKitus(a,b,1);
                 korektiskas2:=RaskKitus(b,a,2);
                 if (korektiskas1 and
                     korektiskas2 and
                    (lapeliai[1,1]<=lapeliai[2,1]))
                    or not korektiskas2
                    then kuris:=1;

                 if (korektiskas1 and
                     korektiskas2 and
                    (lapeliai[1,1]>lapeliai[2,1]))
                    or not korektiskas1
                    then kuris:=2;

               end;

 end;


 procedure Rezultatai;
  var i:integer;
      f:text;
  begin
     assign(f,'LAPELIAI.REZ');
     rewrite(f);
     for i:=1 to N do
      writeln(f,lapeliai[kuris,i]);
     close(f);
  end;

  begin
   Pradedame;
   Skaiciuojame;
   Rezultatai;
  end.