#include #include #include #ifdef LOCAL #include "dbgtoki.hpp" #define DUMP(i) dump((string)TOSTRING(i), demangle(typeid(i).name()), __LINE__ , i) #else #define DUMP(i) #endif using namespace std; #define TOSTRING(x) #x #define SZ(x) (int)(x).size() #define REP(i,n) for(int i=0;i<(n);i++) #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define ALL(s) (s).begin(), (s).end() #define UNIQUE(v) v.erase( unique(v.begin(), v.end()) , v.end()); #define dis distance #define so(V) sort(ALL(V)) #define rev(V) reverse(ALL(V)) #define pub push_back #define sec second #define fir first typedef long long unsigned int llu; typedef long long ll; typedef vector vi; typedef vector vll; typedef vector > vvi; const int EPS = 1e-9; const int MOD = 1e9+7; const int INF = (1 << 30); int main(){ cin.tie(0); ios::sync_with_stdio(false); string a,b; cin >> a >> b; stringstream ssa; stringstream ssb; if(SZ(a) > 5 || SZ(b) > 5){ cout << "NG" << endl; return 0; } bool isFirst = true; REP(i,SZ(a)){ if(isFirst && (i != SZ(a)-1)&&(a[i] == '0')){ cout << "NG" << endl; return 0; }else if(a[i] - '0' < 0 || a[i] - '0' > 9){ cout << "NG" << endl; return 0; }else isFirst = false; } isFirst = true; REP(i,SZ(b)){ if(isFirst && (i != SZ(b)-1)&&(b[i] == '0')){ cout << "NG" << endl; return 0; }else if(b[i] - '0' < 0 || b[i] - '0' > 9){ cout << "NG" << endl; return 0; }else isFirst = false; } ssa << a; ssb << b; int ia,ib; ssa >> ia; ssb >> ib; if(ia > 12345 || ib > 12345){ cout << "NG" << endl; }else{ cout << "OK" << endl; } return 0; }