# pragma GCC target("avx2") # pragma GCC optimize("O3") # pragma GCC optimize("unroll-loops") #include using namespace std; inline static int encode(char c){ switch(c){ case 'R': return 0; case 'S': return 1; case 'P': return 2; case 'X': return 3; default: return -1; } } int expecteddd[100]; const char s[] = "XRSP"; uint32_t find_initial_state(){ constexpr uint64_t LIMIT = uint64_t{1} << 32; for(uint64_t initial_state = 0; initial_state < LIMIT; ++initial_state){ uint32_t state = static_cast(initial_state); bool ok = true; for(int j = 0; j < 100; ++j){ state ^= state << 13; state ^= state >> 17; state ^= state << 5; if((state & 3) != static_cast(expecteddd[j])){ ok = false; break; } } if(ok){ return static_cast(initial_state); } } return 0; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); string T; cin >> T; for(int j = 0; j < 100; ++j){ expecteddd[j] = encode(T[j]); } uint32_t initial_state = find_initial_state(); int N; cin >> N; uint32_t state = initial_state; for(int i = 0; i < 100; i++){ state ^= state << 13; state ^= state >> 17; state ^= state << 5; } for(int i = 0; i < N; i++){ state ^= state << 13; state ^= state >> 17; state ^= state << 5; cout << s[state & 3]; } cout << '\n'; }