#include<stdio.h>
#define min(a,b) (a<b?a:b)
#define max(a,b) (a>b?a:b)
int len[55]={0};
long long int k,l,r;
void dfs(long long int level,long long int l,long long int r){
if(level==0)
return;
if(l==0)
printf("O");
if(l<len[level]/2 && r>0){
dfs(level-1,max(l-1,0),min(r,len[level-1])-1);
}
if(l<=len[level]/2 && len[level]/2<=r)
printf("u");
if(r>len[level]/2 && l<len[level]-1){
dfs(level-1,max(0,l-len[level]/2-1),min(r-len[level]/2,len[level-1])-1);
}
if(r==len[level]-1)
printf("Q");
}
int main(){
for(int i=1;i<=50;i++){
len[i]=len[i-1]*2+3;
}
while(scanf("%lld %lld %lld",&k,&l,&r)!=EOF){
dfs(k,l,r);
printf("\n");
}
return 0;
}