#include <iostream>
using namespace std;
struct data
{
long long leng;
long long Sd;
long long Sg;
long long Sc;
};
struct data S[200];
void khoitao ()
{
S[0].leng=3;
S[0].Sd=0;
S[0].Sg=3;
S[0].Sc=3;
}
char Dequy (long long n, int cs)
{
if (1<=n && n<=S[cs].Sd) return Dequy (n, cs-1);
else if (S[cs].Sd<n && n<=S[cs].Sg)
{
n=n-S[cs].Sd;
if (n==1) return 'm';
else return 'o';
}
else if (S[cs].Sg<n && n<=S[cs].Sc)
{
n=n-S[cs].Sg;
return Dequy (n, cs-1);
}
}
int main ()
{
khoitao();
int i=0;
long long N;
cin>>N;
while (1)
{
if (S[i].leng>=N) break;
i++;
S[i].Sd=0+S[i-1].leng;
S[i].Sg=S[i].Sd+1+i+2;
S[i].Sc=S[i].Sg+S[i-1].leng;
S[i].leng=S[i].Sc;
}
cout<<Dequy (N, i);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RydWN0IGRhdGEKewoJbG9uZyBsb25nIGxlbmc7Cglsb25nIGxvbmcgU2Q7Cglsb25nIGxvbmcgU2c7Cglsb25nIGxvbmcgU2M7Cn07CnN0cnVjdCBkYXRhIFNbMjAwXTsKdm9pZCBraG9pdGFvICgpCnsKCVNbMF0ubGVuZz0zOwoJU1swXS5TZD0wOwoJU1swXS5TZz0zOwoJU1swXS5TYz0zOwp9CgpjaGFyIERlcXV5IChsb25nIGxvbmcgbiwgaW50IGNzKQp7CglpZiAoMTw9biAmJiBuPD1TW2NzXS5TZCkgcmV0dXJuIERlcXV5IChuLCBjcy0xKTsKCWVsc2UgaWYgKFNbY3NdLlNkPG4gJiYgbjw9U1tjc10uU2cpCgl7CgkJbj1uLVNbY3NdLlNkOwoJCWlmIChuPT0xKSByZXR1cm4gJ20nOwoJCWVsc2UgcmV0dXJuICdvJzsKCX0KCWVsc2UgaWYgKFNbY3NdLlNnPG4gJiYgbjw9U1tjc10uU2MpCgl7CgkJbj1uLVNbY3NdLlNnOwoJCXJldHVybiBEZXF1eSAobiwgY3MtMSk7Cgl9Cn0KCmludCBtYWluICgpCnsKCWtob2l0YW8oKTsKCWludCBpPTA7Cglsb25nIGxvbmcgTjsKCWNpbj4+TjsKCXdoaWxlICgxKQoJewoJCWlmIChTW2ldLmxlbmc+PU4pIGJyZWFrOwoJCWkrKzsKCQlTW2ldLlNkPTArU1tpLTFdLmxlbmc7CgkJU1tpXS5TZz1TW2ldLlNkKzEraSsyOwoJCVNbaV0uU2M9U1tpXS5TZytTW2ktMV0ubGVuZzsKCQlTW2ldLmxlbmc9U1tpXS5TYzsKCX0KCWNvdXQ8PERlcXV5IChOLCBpKTsKCQoJcmV0dXJuIDA7Cn0=