with Ada.Text_Io; use Ada.Text_Io;
procedure Main is
X : Integer := 3; Y : Integer := 2;
procedure P (X : Integer) is
procedure Q (Y : Integer) is
procedure R (X : Integer) is
begin Put_Line (Integer'Image (X+Y)); end R;
begin if Y > 0 then P(X-1); else R(X+Y); end if; end Q;
begin if X > 0 then Q(X-1); else P(X-Y); end if; end P;
begin P (X-1); end Main;
CndpdGggQWRhLlRleHRfSW87IHVzZSBBZGEuVGV4dF9JbzsKCnByb2NlZHVyZSBNYWluIGlzCiAgIFggOiBJbnRlZ2VyIDo9IDM7IFkgOiBJbnRlZ2VyIDo9IDI7CiAgIHByb2NlZHVyZSBQIChYIDogSW50ZWdlcikgaXMKICAgICAgcHJvY2VkdXJlIFEgKFkgOiBJbnRlZ2VyKSBpcwogICAgICAgICBwcm9jZWR1cmUgUiAoWCA6IEludGVnZXIpIGlzCiAgICAgICAgIGJlZ2luIFB1dF9MaW5lIChJbnRlZ2VyJ0ltYWdlIChYK1kpKTsgZW5kIFI7CiAgICAgIGJlZ2luIGlmIFkgPiAwIHRoZW4gUChYLTEpOyBlbHNlIFIoWCtZKTsgZW5kIGlmOyBlbmQgUTsKICAgYmVnaW4gaWYgWCA+IDAgdGhlbiBRKFgtMSk7IGVsc2UgUChYLVkpOyBlbmQgaWY7IGVuZCBQOwpiZWdpbiBQIChYLTEpOyBlbmQgTWFpbjsK