// TODO: 解答方針不明. #include using namespace std; using LL = long long; int main() { // 1. 入力情報取得. string SB, SA; LL N; cin >> SB >> N >> SA; // 手品を場合分け. // 2. o, x の 個数が変化したら, "SUCCESS". int bo = 0, ao = 0; for(int i = 0; i < 3; i++){ if(SB[i] == 'o') bo++; if(SA[i] == 'o') ao++; } if(bo != ao){ // cout << bo << " " << ao << endl; cout << "SUCCESS" << endl; return 0; } // 3. o, x の 個数が変化しない場合. // 3-1. N が 0 の 場合, SB, SA が同じなら, "FAILURE". if(N == 0){ if(SB == SA) cout << "FAILURE" << endl; else cout << "SUCCESS" << endl; return 0; } // 3-2. o が, 0 or 3個 の 場合は, "FAILURE". if(bo == 0 || bo == 3){ cout << "FAILURE" << endl; return 0; } // 3-3. o が, 1 or 2個 の 場合. // ※o, x の役割を入れ替えて考えると, 一緒に出来るはず. // [1個] // SB: oxx, xox, xxo // SA: oxx, xox, xxo // [2個] // SB: oox, oxo, xoo // SA: oox, oxo, xoo if(bo == 1 || bo == 2){ if(N > 1){ // string ans = "FAILURE"; // if(SB == SA) ans = "FAILURE"; // if(SB == "oxx" && SA == "xox") ans = "FAILURE"; // if(SB == "oxx" && SA == "xxo") ans = "FAILURE"; // if(SB == "xox" && SA == "oxx") ans = "FAILURE"; // if(SB == "xox" && SA == "xxo") ans = "FAILURE"; // if(SB == "xxo" && SA == "oxx") ans = "FAILURE"; // if(SB == "xxo" && SA == "xox") ans = "FAILURE"; cout << "FAILURE" << endl; return 0; } if(N == 1){ string ans = "FAILURE"; if(SB == "oxx" && SA == "xxo") ans = "SUCCESS"; if(SB == "xxo" && SA == "oxx") ans = "SUCCESS"; if(SB == "oox" && SA == "xoo") ans = "SUCCESS"; if(SB == "xoo" && SA == "oox") ans = "SUCCESS"; cout << ans << endl; return 0; } } // 3. 出力. return 0; }