import java.io.*;
import java.util.*;

import static java.lang.Math.max;
import static java.lang.Math.min;
import static java.lang.Math.pow;

public class Main {
    BufferedReader br;
    StringTokenizer in;
    PrintWriter pw;

    public static void main(String[] args) throws IOException {
        new Main().run();
    }

    boolean f[];

    void solve() throws IOException {
        int n = nextInt();
        f = new boolean[4000];
        int f1 = 1;
        int f2 = 1;
        f[1] = true;
        while (f1 <= n) {
            int z = f2;
            f2 = f1;
            f1 = f2 + z;
            f[f1] = true;
        }
        for (int i = 1; i <= n; i++) {
            if (f[i]) pw.print("O");
            else pw.print("o");
        }
    }


    void run() throws IOException {
//        br = new BufferedReader(new FileReader("input.txt"));
//        pw = new PrintWriter(new FileWriter("output.txt"));
//        br = new BufferedReader(new FileReader("intput.txt"));
//        pw = new PrintWriter(new FileWriter("output.txt"));
        br = new BufferedReader(new InputStreamReader(System.in));
        pw = new PrintWriter(new OutputStreamWriter(System.out));
        solve();
        pw.close();
    }

    String nextToken() throws IOException {
        while (in == null || !in.hasMoreTokens()) {
            in = new StringTokenizer(br.readLine());
        }
        return in.nextToken();
    }

    int nextInt() throws IOException {
        return Integer.parseInt(nextToken());
    }

    long nextLong() throws IOException {
        return Long.parseLong(nextToken());
    }
}