(* В этом файле определены isspace и isalnum *)
uses stdio;

const
  MAXTOK=256;

var
  inbuf:array [0..MAXTOK] of char;


function getword (inf:pfile):pchar;
var
  c,count:integer;
begin
  count:=0;
  (* Удалить пробельные символы *)
  repeat
    c := getc (inf);
  until not isspace (c);
  if c = EOF then
  begin
    getword:=nil;
    exit;
  end;
  if not isalnum (c) then		(* символ не является алфавитно-цифровым *)
  begin
    inbuf[count] := char(c);
    inc(count);
  end
  else
  begin
    (* Сборка "слова" *)
    repeat
      if count < MAXTOK then
      begin
        inbuf[count] := char(c);
        inc(count);
      end;
      c := getc (inf);
    until not isalnum (c);
    ungetc (c, inf);		(* вернуть символ *)
  end;
  inbuf[count] := #0;
  (* нулевой символ в конце строки *)
  getword:=inbuf;
end;
 
 
var
  word:pchar;
begin
  while true do
  begin
    word := getword (stdin);
    if word <> nil then
      puts (word)
    else
      break;
  end;
end.
