Program Fronta;

type Nick = ^Clovek;
     Clovek = record
       jmeno: integer;
       dalsi: Nick;
     end;

var zacatek, konec: Nick;
    PlaticiClovek: Nick;
    ukoncit:String;
    akce : char;
    poradi: integer;

begin
  new(zacatek);
  konec:=zacatek;
  poradi:=1;
  repeat
    writeln('Stiskni klvesu. Nov vstup: n, Vstup: v.');
    readln(akce);
    case akce of
    'n':
      begin
        konec^.jmeno:=poradi;
        poradi:=poradi+1;
        new(konec^.dalsi);
        konec:=konec^.dalsi;
      end;
    'v':
      begin
        if zacatek = konec then
          writeln('fronta je przdn.')
        else
        begin
          PlaticiClovek:=zacatek;
          zacatek:=zacatek^.dalsi;
          dispose(PlaticiClovek);
        end;
      end
    else writeln('Fronta stoj.');
    end;
    write('Fronta: ');
    if zacatek <> konec then
    begin
      PlaticiClovek:=zacatek;
      repeat
        write(PlaticiClovek^.jmeno, ' ');
        PlaticiClovek:=PlaticiClovek^.dalsi;
      until PlaticiClovek = konec;
    end;
    writeln();
    writeln('Chcete-li skonit, napite Konec');
    writeln('Pro pokraovn stisknte Enter');
    readln(ukoncit);
  until ukoncit = 'Konec';

  {ruen fronty}
  if zacatek <> konec then
  begin
    PlaticiClovek:=zacatek;
    repeat
      PlaticiClovek:=zacatek;
      zacatek:=zacatek^.dalsi;
      dispose(PlaticiClovek);
      PlaticiClovek:=zacatek;
    until PlaticiClovek = konec;
  end;

  writeln('Zstal nkdo ve front?');
  write('Fronta: ');
  if zacatek <> konec then
  begin
    PlaticiClovek:=zacatek;
    repeat
      write(PlaticiClovek^.jmeno, ' ');
      PlaticiClovek:=PlaticiClovek^.dalsi;
    until PlaticiClovek = konec;
  end;

  readln;

  dispose(zacatek);
end.