import itertools from collections import deque # Precompute the shortest distance for all permutations using BFS start = (0, 1, 2) distance = {start: 0} queue = deque([start]) while queue: current = queue.popleft() # Generate next states by applying L and R operations # L: swap positions 0 and 1 l_next = list(current) l_next[0], l_next[1] = l_next[1], l_next[0] l_tuple = tuple(l_next) if l_tuple not in distance: distance[l_tuple] = distance[current] + 1 queue.append(l_tuple) # R: swap positions 1 and 2 r_next = list(current) r_next[1], r_next[2] = r_next[2], r_next[1] r_tuple = tuple(r_next) if r_tuple not in distance: distance[r_tuple] = distance[current] + 1 queue.append(r_tuple) # Read input s_before = input().strip() n = int(input()) s_after = input().strip() # Find all permutations p where applying p to s_before results in s_after candidates = [] for p in itertools.permutations([0, 1, 2]): valid = True for i in range(3): if s_before[p[i]] != s_after[i]: valid = False break if valid: candidates.append(p) if not candidates: print("SUCCESS") else: failure = False for p in candidates: m = distance[p] if m <= n and (m % 2) == (n % 2): print("FAILURE") failure = True break if not failure: print("SUCCESS")