#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define all(x) (x).begin(),(x).end() #define rep(i,m,n) for(int i = m;i < n;++i) #define pb push_back #define fore(i,a) for(auto &i:a) #define rrep(i,m,n) for(int i = m;i >= n;--i) #define INF INT_MAX/2 using namespace std; using ll = long long; using R = double; const ll inf = 1LL << 50; const ll MOD = 1e9 + 7; struct edge { ll from; ll to; ll cost; }; void p(int c) { if (c) { cout << "SUCCESS" << endl; } else { cout << "FAILURE" << endl; } exit(0); } int main(){ string sbef, saft; ll n; cin >> sbef >> n >> saft; int cnt1 = 0; int cnt2 = 0; rep(i, 0, 3) { if (sbef[i] == 'o')cnt1++; if (saft[i] == 'o')cnt2++; } if (cnt1 != cnt2)p(1); else if (cnt1 == 0 || cnt1 == 3) { p(0); } string s1, s2, s3, s4, s5, s6; s1 = "oox"; s2 = "oxo"; s3 = "xoo"; s4 = "xxo"; s5 = "xox"; s6 = "oxx"; if (cnt1 == 1) { swap(s1, s4), swap(s2, s5), swap(s3, s6); } if (n == 0) { if (sbef != saft)p(1); else p(0); } else if (n == 1) { if (sbef == s2) { if (saft == s2)p(1); else p(0); } else { if ((sbef == s1 && saft == s3) || (sbef == s3 && saft == s1))p(1); else p(0); } } else{ p(0); } return 0; }