import std.stdio;
import std.typecons;
int gcd(int a, int b) {
auto t = tuple(a, b);
while(t[1] > 0) {
t = tuple(t[1], t[0]%t[1]);
}
return t[0];
}
Tuple!(int, int) simplifyFrac(int a, int b) {
int d = gcd(a, b);
return tuple(a/d, b/d);
}
void main()
{
writeln([simplifyFrac(4, 8)[]]);
writeln([simplifyFrac(1536, 78360)[]]);
writeln([simplifyFrac(51478, 5536)[]]);
writeln([simplifyFrac(46410, 119340)[]]);
writeln([simplifyFrac(7673, 4729)[]]);
writeln([simplifyFrac(4096, 1024)[]]);
}
aW1wb3J0IHN0ZC5zdGRpbzsKaW1wb3J0IHN0ZC50eXBlY29uczsKCmludCBnY2QoaW50IGEsIGludCBiKSB7CiAgICBhdXRvIHQgPSB0dXBsZShhLCBiKTsKICAgIHdoaWxlKHRbMV0gPiAwKSB7CiAgICAgICAgdCA9IHR1cGxlKHRbMV0sIHRbMF0ldFsxXSk7CiAgICB9CiAgICByZXR1cm4gdFswXTsKfQoKVHVwbGUhKGludCwgaW50KSBzaW1wbGlmeUZyYWMoaW50IGEsIGludCBiKSB7CiAgICBpbnQgZCA9IGdjZChhLCBiKTsKICAgIHJldHVybiB0dXBsZShhL2QsIGIvZCk7Cn0KCnZvaWQgbWFpbigpCnsKCXdyaXRlbG4oW3NpbXBsaWZ5RnJhYyg0LCA4KVtdXSk7CiAgICB3cml0ZWxuKFtzaW1wbGlmeUZyYWMoMTUzNiwgNzgzNjApW11dKTsKICAgIHdyaXRlbG4oW3NpbXBsaWZ5RnJhYyg1MTQ3OCwgNTUzNilbXV0pOwogICAgd3JpdGVsbihbc2ltcGxpZnlGcmFjKDQ2NDEwLCAxMTkzNDApW11dKTsKICAgIHdyaXRlbG4oW3NpbXBsaWZ5RnJhYyg3NjczLCA0NzI5KVtdXSk7CiAgICB3cml0ZWxuKFtzaW1wbGlmeUZyYWMoNDA5NiwgMTAyNClbXV0pOwp9