
{$R-}
{$Q-}

const
   q2 : qword = 1234;
   i2 : int64 = -1234;

var
   q : qword;
   i : int64;
   l1,l2 : longint;
   s : string;

procedure p1(q : qword;i : int64);

  begin
  end;

function f1 : qword;

  begin
   f1:=1;
  end;

function f2 : int64;

  begin
   f2:=-1;
  end;

var
   q1,q3,q4 : qword;

begin
   q1:=1;
   q3:=1;
   q4:=1;
   if not((q4 div q3) div (q2 div q1)<>(q2 div q1) div (q4 div q3)) then
     begin
       writeln('Error :(');
       halt(1);
     end;
   q:=q-q;
   q:=q-(q*q);
   q:=(q*q)-(q*q);
   { first test the comparisation }
   i:=f2;
   if q<>q then
     begin
       writeln('Error :(');
       halt(2);
     end;

   if q>q then
     begin
       writeln('Error :(');
       halt(3);
     end;

   if i>f2 then
     begin
       writeln('Error :(');
       halt(4);
     end;
   if l1>l2 then
     begin
       writeln('Error :(');
       halt(5);
     end;
   p1(q,i);
   q:=f1;
   i:=f2;
   q:=q+q;
   i:=((i+i) xor (i+i)) or ((i+i) xor (i+i));
   q:=q shl l1;
   q:=q shr l1;
   q:=(q shl l1)+(q shl l1);

   q:=not(q);
   i:=not(i);
   q:=not(q xor q);
   i:=not(i or i);

   { unary minus }
   q:=-q;
   i:=-i;
   q:=-(q xor q);
   i:=-(i or i);

   { multiplication }
   // q:=3;
   q:=q*q;

   i:=i*i;

   q:=q*(q*q);
   i:=i*(i*i);

   q:=(q*q)*(q*q);
   q:=((q*q)*(q*q))*((q*q)*(q*q));

   writeln(q);
   writeln(i);
{ test can't be interactive (PFV)
   read(q);
   read(i); }
   str(q,s);
   str(i,s);
end.
