with ada.text_io; use ada.text_io;
with ada.integer_text_io; use ada.integer_text_io; 
 
with Ada.Unchecked_Conversion;
procedure decode0  is 
   subtype String4 is String(1 .. 4);

   function rev(s: String) return String is
      ans: String(s'range);
   begin
      for i in s'range loop
         ans(i) := s(s'first + s'last - i);  -- last shall be first
      end loop;
      return ans;
   end rev;

   function int2string4 is new ada.Unchecked_Conversion
      (source => Integer,
       target => String4);

   i: Integer;
   s: String4;
begin
   while not end_of_file loop
      get(i);
      s := int2string4(i);
      put(rev(s));
   end loop;
end decode0;