with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
procedure Program is
procedure GCD (U, V : in Integer; X : out Integer) is
Y, T, Z : Integer;
begin
Z := U;
Y := V;
loop
exit when Y = 0;
T := Y;
Y := Z mod Y;
Z := T;
end loop;
X := Z;
end GCD;
GCD_Ans : Integer;
begin
GCD (8, 18, GCD_Ans);
Put ("gcd(8, 18) = ");
Put (GCD_Ans);
New_Line;
end Program;
d2l0aCBBZGEuVGV4dF9JTzsgICAgICAgICB1c2UgQWRhLlRleHRfSU87CndpdGggQWRhLkludGVnZXJfVGV4dF9JTzsgdXNlIEFkYS5JbnRlZ2VyX1RleHRfSU87Cgpwcm9jZWR1cmUgUHJvZ3JhbSBpcwoKICAgcHJvY2VkdXJlIEdDRCAoVSwgViA6IGluIEludGVnZXI7IFggOiBvdXQgSW50ZWdlcikgaXMKICAgICAgWSwgVCwgWiA6IEludGVnZXI7CiAgIGJlZ2luCiAgICAgIFogOj0gVTsKICAgICAgWSA6PSBWOwogICAgICBsb29wCiAgICAgICAgIGV4aXQgd2hlbiBZID0gMDsKICAgICAgICAgVCA6PSBZOwogICAgICAgICBZIDo9IFogbW9kIFk7CiAgICAgICAgIFogOj0gVDsKICAgICAgZW5kIGxvb3A7CiAgICAgIFggOj0gWjsKICAgZW5kIEdDRDsKCiAgIEdDRF9BbnMgOiBJbnRlZ2VyOwoKYmVnaW4KICAgR0NEICg4LCAxOCwgR0NEX0Fucyk7CiAgIFB1dCAoImdjZCg4LCAxOCkgPSAiKTsKICAgUHV0IChHQ0RfQW5zKTsKICAgTmV3X0xpbmU7CmVuZCBQcm9ncmFtOw==