#include #include #include #include #include static bool is_ip(std::string &s) { size_t sl = s.size(); assert (sl <= 20); size_t cnt = 0; for (size_t i = 0; i < sl; i++) { char c = s[i]; if (c == '.') { cnt++; continue; } assert (isdigit(c)); assert (uint32_t(c - '0') < 10); } assert (cnt == 3); s += '.'; std::string t; for (size_t i = 0; i <= sl; i++) { char c = s[i]; if (c != '.') { t += c; continue; } size_t tl = t.size(); if (tl == 0) return false; unsigned int x = 0; for (size_t i = 0; i < tl; i++) { unsigned int v = t[i] - '0'; x = x * 10 + v; if (x > 255) return false; } t.clear(); } return true; } int main() { std::string s; std::cin >> s; assert (std::cin); bool ok = is_ip(s); std::cout << (ok ? "Good" : "Bad") << std::endl; return 0; }