#include<iostream>
using namespace std;
long long n, turn , siz;
int main() {
cin >> n;
while (n > 3) {
siz = 3;
turn = 4;//中间 加的字符
while (n >= siz) {
// 找到siz < n <= 2 *siz
siz = siz * 2 + turn;
turn ++;
}
turn--;//注释里面必须解释为什么先turn--
siz = (siz - turn) / 2;//这个也要解释
if (n <= siz + turn) {//是不是属于mooooo这部分
if (n == siz + 1) {
cout << "m";//第一个是m
} else {
cout << "o";
}
return 0;
}
n -= turn + siz;
}
if (n == 1) {
cout << "m";//第一个是m
} else {
cout << "o";
}
}
//如果n很小,
//你把暴力的方法写出来
//COW
//COWWCO
//COWWCOOCOWWC
//怎么拼接?
//怎么把最后一个字符拿到前面来?
#include<iostream>
using namespace std;
int main() {
string s;
long long n;
cin >> s >> n;
/*while(s.size() < n) {
string a;
a += s[s.size() - 1];
for (int i = 0; i < s.size() - 1; i++) {
a += s[i];
}
s += a;//
}
cout << s[n - 1];*/
//输入sn
//循环直到n小于s.size()
while (n > s.size()) {
long long siz = s.size();
while (siz < n) {
// 找到siz < n <= 2 *siz
siz *= 2;
}siz /= 2;//此时siz>=n,要/2
// 根据n和siz的关系把n减小
if (n == siz + 1) {
n = siz;
} else {
n = n - siz - 1;
}
}
cout << s[n - 1];
}