import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class temp {

	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
		boolean fib[] = new boolean[100000000];
		fib[1] = true;
		fib[2] = true;
		int p1 = 1;
		int p2 = 2;
		for(int i = 0; i < 30; i++) {
			fib[p1+p2] = true;
			int temp = p2;
			p2 = p1+p2;
			p1 = temp;
		}
		int n = in.nextInt();
		for(int i = 1; i <= n; i++) {
			if(fib[i] == true) System.out.print("O");
			else System.out.print("o");
		}
		

	}
	
	
	static class FastScanner{
		BufferedReader br;
		StringTokenizer st;
		public FastScanner(String s) {
			try{
				br = new BufferedReader(new FileReader(s));
			}
			catch(FileNotFoundException e) {
				e.printStackTrace();
			}
		}
		public FastScanner(){
			br = new BufferedReader(new InputStreamReader(System.in));
		}
		
		String nextToken()	{
			while(st == null ||!st.hasMoreElements()){
				try {
				st = new StringTokenizer(br.readLine());}
				catch(IOException e) {
					e.printStackTrace();
				}			
			}
			return st.nextToken();
		}
		
		int nextInt() {
			return Integer.parseInt(nextToken());
		}
		long nextLong() {
			return Long.parseLong(nextToken());
		}
		double nextDouble() {
			return Double.parseDouble(nextToken());
		}
		String next() {
			return nextToken();
		}
		
	}

}
