import java.io.*;
import java.math.*;
import java.util.*;
public final class Main {
private static final class tokens extends LinkedList<String> {
super(new LinkedList<String>());
for (String token
: line.
split(" ")) add(token); }
String next
() { return remove
(); } int nextInt
() { return Integer.
parseInt(next
()); } long nextLong
() { return Long.
parseLong(next
()); } double nextDouble
() { return Double.
parseDouble(next
()); } char nextChar() { return next().charAt(0); }
byte[] nextBytes() { return next().getBytes(); }
try { line = cin.readLine(); }
return new tokens(line); }
private static byte[] to_bytes
(String s
) { return s.
getBytes(); } private static byte[] to_bytes
(Integer x
) { return to_bytes
(x.
toString()); } private static byte[] to_bytes
(Long x
) { return to_bytes
(x.
toString()); } private static byte[] to_bytes
(BigInteger x
) { return to_bytes
(x.
toString()); } return to_bytes
(String.
format(f,x
)); } private final static byte[] space = to_bytes(" ");
private final static byte[] endl = to_bytes("\n");
for (int T = nextLine(cin).nextInt(); T > 0; --T) {
cout.write(endl); }
cout.flush(); } }
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEubWF0aC4qOwppbXBvcnQgamF2YS51dGlsLio7CgpwdWJsaWMgZmluYWwgY2xhc3MgTWFpbiB7Cglwcml2YXRlIHN0YXRpYyBmaW5hbCBjbGFzcyB0b2tlbnMgZXh0ZW5kcyBMaW5rZWRMaXN0PFN0cmluZz4gewoJCXRva2VucyhTdHJpbmcgbGluZSkgeyAKCQkJc3VwZXIobmV3IExpbmtlZExpc3Q8U3RyaW5nPigpKTsgCgkJCWZvciAoU3RyaW5nIHRva2VuOiBsaW5lLnNwbGl0KCIgIikpCgkJCQlhZGQodG9rZW4pOyB9IAoJCVN0cmluZyAgICAgICAgICAgbmV4dCgpIHsgcmV0dXJuIHJlbW92ZSgpOyB9CgkJaW50ICAgICAgICAgICBuZXh0SW50KCkgeyByZXR1cm4gSW50ZWdlci5wYXJzZUludChuZXh0KCkpOyB9IAoJCWxvbmcgICAgICAgICBuZXh0TG9uZygpIHsgcmV0dXJuIExvbmcucGFyc2VMb25nKG5leHQoKSk7IH0KCQlkb3VibGUgICAgIG5leHREb3VibGUoKSB7IHJldHVybiBEb3VibGUucGFyc2VEb3VibGUobmV4dCgpKTsgfQogICAgCWNoYXIgICAgICAgICBuZXh0Q2hhcigpIHsgcmV0dXJuIG5leHQoKS5jaGFyQXQoMCk7IH0KICAgIAlieXRlW10gICAgICBuZXh0Qnl0ZXMoKSB7IHJldHVybiBuZXh0KCkuZ2V0Qnl0ZXMoKTsgfQogICAgCUJpZ0ludGVnZXIgbmV4dEJpZ0ludCgpIHsgcmV0dXJuIG5ldyBCaWdJbnRlZ2VyKG5leHQoKSk7IH0gfQoJcHJpdmF0ZSBzdGF0aWMgdG9rZW5zIG5leHRMaW5lKEJ1ZmZlcmVkUmVhZGVyIGNpbikgeyAKCQlTdHJpbmcgbGluZSA9IG51bGw7CgkJdHJ5IHsgbGluZSA9IGNpbi5yZWFkTGluZSgpOyB9CgkJY2F0Y2ggKElPRXhjZXB0aW9uIGUpIHsgZS5wcmludFN0YWNrVHJhY2UoKTsgfQoJCXJldHVybiBuZXcgdG9rZW5zKGxpbmUpOyB9Cglwcml2YXRlIHN0YXRpYyBieXRlW10gdG9fYnl0ZXMoU3RyaW5nIHMpICAgICB7IHJldHVybiBzLmdldEJ5dGVzKCk7IH0KCXByaXZhdGUgc3RhdGljIGJ5dGVbXSB0b19ieXRlcyhJbnRlZ2VyIHgpICAgIHsgcmV0dXJuIHRvX2J5dGVzKHgudG9TdHJpbmcoKSk7IH0KCXByaXZhdGUgc3RhdGljIGJ5dGVbXSB0b19ieXRlcyhMb25nIHgpICAgICAgIHsgcmV0dXJuIHRvX2J5dGVzKHgudG9TdHJpbmcoKSk7IH0KCXByaXZhdGUgc3RhdGljIGJ5dGVbXSB0b19ieXRlcyhCaWdJbnRlZ2VyIHgpIHsgcmV0dXJuIHRvX2J5dGVzKHgudG9TdHJpbmcoKSk7IH0KCXByaXZhdGUgc3RhdGljIGJ5dGVbXSB0b19ieXRlcyhTdHJpbmcgZiwgRG91YmxlIHgpIHsgCgkJcmV0dXJuIHRvX2J5dGVzKFN0cmluZy5mb3JtYXQoZix4KSk7IH0KCXByaXZhdGUgZmluYWwgc3RhdGljIGJ5dGVbXSBzcGFjZSA9IHRvX2J5dGVzKCIgIik7Cglwcml2YXRlIGZpbmFsIHN0YXRpYyBieXRlW10gZW5kbCAgPSB0b19ieXRlcygiXG4iKTsKCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHRocm93cyBJT0V4Y2VwdGlvbiB7CgkgICAgZmluYWwgSW5wdXRTdHJlYW1SZWFkZXIgaXN0cmVhbSA9IG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pOwoJCWZpbmFsIEJ1ZmZlcmVkUmVhZGVyIGNpbiA9IG5ldyBCdWZmZXJlZFJlYWRlcihpc3RyZWFtKTsKCQlmaW5hbCBCdWZmZXJlZE91dHB1dFN0cmVhbSBjb3V0ID0gbmV3IEJ1ZmZlcmVkT3V0cHV0U3RyZWFtKFN5c3RlbS5vdXQpOwoJICAgIGZvciAoaW50IFQgPSBuZXh0TGluZShjaW4pLm5leHRJbnQoKTsgVCA+IDA7IC0tVCkgewoJICAgICAgIGNvdXQud3JpdGUoZW5kbCk7IH0KCQljb3V0LmZsdXNoKCk7IH0gfQo=