#include<iostream>
using namespace std;
void solution(int n );
int main(void)
{
int n;
cin>>n;
string s0="moo",s1,s2 = s0;
//考虑下要不要创立这个创立这个就超空间了
/* for (int i = 0; i<n; i++)
{
s1 = s2 + "m";
s1 = s1 + "oo";
for (int k = 0; k<i+1; k++)
s1 = s1 + "o";
s1 = s1 + s2;
s2 = s1;
}*/
//看第n个是什么字母:
solution(n) ;
//out<<s1[n-1];
//cout<<s1[n];
}
void solution(int n)
{
//看数据有多长
int s0=3;
int s1=3;//字符串总长度
if(n<=3)
{
if(n==1)
{
cout<<"m";
}
else cout<<"o";
return ;
}
for(int i=1;i<=n;i++)
{
s1=s0*2+3+i;
s0=s1;
if(n==s1+1) {
cout<<"m";
break;
}
else if(n>s1+1&&n<=s1+3+i)
{
cout<<"o";
break;
}
//应该不可能在后面半截。
else if(n>s1+3+i &&n<=2*s1+3+i )
{
solution(n-s1+i+3+1);
return ;
}
} //算出字符串总长度
//看n在什么位置:
/* if(n>s1/2)//其实肯定在前面一截
{
} */
return ;
}