import java.util.*;
import java.lang.*;
import java.net.*;
class Main
{
{
byte[] partsTo = to.getAddress();
for (;;) {
byte[] parts = from.getAddress();
boolean sameUpperPart = true;
for (int i = 0 ; sameUpperPart && i < parts.length-1 ; i++) {
sameUpperPart &= (partsTo[i] == parts[i]);
}
if (sameUpperPart) {
break;
}
int last = parts.length-1;
parts[last] = (byte)0xFF;
parts[last] = 0x00;
for (int i = last-1 ; i >= 0 ; i--) {
if (++parts[i] != 0) {
break;
}
}
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLm5ldC4qOwoKY2xhc3MgTWFpbgp7CglwdWJsaWMgc3RhdGljIHZvaWQgbWFpbiAoU3RyaW5nW10gYXJncykgdGhyb3dzIGphdmEubGFuZy5FeGNlcHRpb24KCXsKCiAgICBJbmV0QWRkcmVzcyBmcm9tID0gSW5ldEFkZHJlc3MuZ2V0QnlOYW1lKCIxLjIuMy40Iik7CiAgICBJbmV0QWRkcmVzcyB0byA9IEluZXRBZGRyZXNzLmdldEJ5TmFtZSgiMS4yLjUuNiIpOwogICAgYnl0ZVtdIHBhcnRzVG8gPSB0by5nZXRBZGRyZXNzKCk7CiAgICBmb3IgKDs7KSB7CiAgICAgICAgU3lzdGVtLm91dC5wcmludChmcm9tKyIgLSAiKTsKICAgICAgICBieXRlW10gcGFydHMgPSBmcm9tLmdldEFkZHJlc3MoKTsKICAgICAgICBib29sZWFuIHNhbWVVcHBlclBhcnQgPSB0cnVlOwogICAgICAgIGZvciAoaW50IGkgPSAwIDsgc2FtZVVwcGVyUGFydCAmJiBpIDwgcGFydHMubGVuZ3RoLTEgOyBpKyspIHsKICAgICAgICAgICAgc2FtZVVwcGVyUGFydCAmPSAocGFydHNUb1tpXSA9PSBwYXJ0c1tpXSk7CiAgICAgICAgfQogICAgICAgIGlmIChzYW1lVXBwZXJQYXJ0KSB7CiAgICAgICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4odG8pOwogICAgICAgICAgICAgYnJlYWs7CiAgICAgICAgfQogICAgICAgIGludCBsYXN0ID0gcGFydHMubGVuZ3RoLTE7CiAgICAgICAgcGFydHNbbGFzdF0gPSAoYnl0ZSkweEZGOwogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihJbmV0QWRkcmVzcy5nZXRCeUFkZHJlc3MocGFydHMpKTsKICAgICAgICBwYXJ0c1tsYXN0XSA9IDB4MDA7CiAgICAgICAgZm9yIChpbnQgaSA9IGxhc3QtMSA7IGkgPj0gMCA7IGktLSkgewogICAgICAgICAgICBpZiAoKytwYXJ0c1tpXSAhPSAwKSB7CiAgICAgICAgICAgICAgICBicmVhazsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmcm9tID0gSW5ldEFkZHJlc3MuZ2V0QnlBZGRyZXNzKHBhcnRzKTsKICAgIH0KCgoJfQp9