import java.util.*;
import java.io.*;
public class Eleven {
    static class FastReader {
        BufferedReader br;
        StringTokenizer st;
        public FastReader() {
            br = new BufferedReader(new
                    InputStreamReader(System.in));
        }

        String next() {
            while (st == null || !st.hasMoreElements()) {
                try {
                    st = new StringTokenizer(br.readLine());
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
            return st.nextToken();
        }

        int nextInt() {

            return Integer.parseInt(next());
        }

        long nextLong() {
            return Long.parseLong(next());
        }

        double nextDouble() {

            return Double.parseDouble(next());
        }

        String nextLine() {
            String str = "";
            try {
                str = br.readLine();
            } catch (IOException e) {
                e.printStackTrace();
            }

        return str;
    }

}


    public static class FibonacciNumberDP {

        private Map<Integer,Integer> memorizeT;
        public FibonacciNumberDP(){
            memorizeT=new HashMap<>();
            this.memorizeT.put(0,0);
            this.memorizeT.put(1,1);

        }

        public int fibodp(int n){
            if (memorizeT.containsKey(n)) return memorizeT.get(n);

            memorizeT.put(n-1,fibodp(n-1));
            memorizeT.put(n-2,fibodp(n-2));

            int calculatedfib=memorizeT.get(n-1)+memorizeT.get(n-2);

            return calculatedfib;
        }

    }




    public static < E > void print ( E[] inputarray) {

        for (E element : inputarray) {
            System.out.printf("%s \n", element);
        }
        System.out.println();

    }


    static boolean element(int n){

        ArrayList<Integer>al=new ArrayList<>();

        FibonacciNumberDP fx=new FibonacciNumberDP();


        for (int i = 1; i <=1000 ; i++) {
            al.add(fx.fibodp(i));
        }
        for (int i = 0; i <al.size() ; i++) {
            if (n==al.get(i)){
                return true;
            }
        }
        return false;
    }
     public static void main(String[]args) throws IOException{
          FastReader sc = new FastReader();
          OutputStream outputStream = System.out;
          PrintWriter pw = new PrintWriter(outputStream);
          
          int n;
          String s;

          n=sc.nextInt();

         for (int i = 1; i <=n ; i++) {

             if (element(i)==true) {
                 System.out.print("O");
             } else {
                 System.out.print("o");

             }
         }

        // System.out.println(al);
          
          
         
         
         
         pw.close();    
     }
}
/*




*/