Program Pack7;

Type
  CharNum = 1..26;

Var
  OK: packed record
    O, K: CharNum;
  end (* OK *);

Procedure O ( Var x: CharNum );

begin (* O *)
  x:= ord ( 'O' ) - ord ( 'A' ) + 1;
end (* O *);

Function K ( Var x: CharNum ): Integer;

begin (* K *)
  x:= ord ( 'K' ) - ord ( 'A' ) + 1;
  K:= 42;
end (* K *);

Function Answer ( x: Integer ): Boolean;

begin (* Answer *)
  Answer:= x = 42;
end (* Answer *);

begin
  O ( OK.O );
  if Answer ( K ( OK.K ) ) then
    with OK do
      writeln ( chr ( ord ( 'A' ) - 1 + O ),
                chr ( ord ( 'A' ) - 1 + K ) )
  else
    writeln ( 'failed' );
end.
