

import java.util.*;
import java.io.*;
public class Main {
	
	static InputReader in=new InputReader(System.in);
	static PrintWriter out=new PrintWriter(System.out);
	static int N,M;
	static boolean visited[][];
	static char ans[][]; 
	public static void main(String args[])
	{
		int T=1,i,j,k;
		//T=in.readInt();
		while(T-->0)
		{
 			N=in.readInt();
 			int a=1,b=2,c=3;
 			String ans="OO";
 			if(N==1)
 				out.println("O");
 			else if(N==2)
 				out.println("OO");
 			else{
 	 			for(i=3;i<=N;i++)
 	 			{
 	 				if(i==c)
 	 				{
 	 					ans=ans+"O";
 	 					a=b;
 	 					b=c;
 	 					c=a+b;
 	 				}
 	 				else
 	 				{
 	 					ans=ans+"o";
 	 				}
 	 			}
 	 			out.println(ans);
 			}	
		}
		out.flush();
		out.close();
	}
	public static void calc(int A[][],int val,int i,int j)
	{
//		out.println(i+" "+j);
		visited[i][j]=true;
		if(A[i][j]==-1||ans[i][j]=='Y')
			return ;
		else if(A[i][j]==0)
		{
			val++;
			if((i-1)>=0&&!visited[i-1][j])
				calc(A,val,i-1,j);
			if((j-1)>=0&&!visited[i][j-1])
				calc(A,val,i,j-1);
			if((j+1)<M&&!visited[i][j+1])
				calc(A,val,i,j+1);
			if((i+1)<N&&!visited[i+1][j])
				calc(A,val,i+1,j);
		}
		else
		{
			if(val<=A[i][j])
			{
				ans[i][j]='Y';
				return;
			}
		}
	}
}
class Point implements Comparable{
	int x,y,val;
	Point(int x,int y,int val)
	{
		this.x=x;
		this.y=y;
		this.val=val;
	}
	@Override
	public String toString() {
		// TODO Auto-generated method stub
		return super.toString();
	}
	@Override
	public int compareTo(Object arg0) {
		// TODO Auto-generated method stub
		Point p=(Point)arg0;
		return this.val-p.val;
	}
}
class InputReader{
	private InputStream stream;
	private byte[] buf = new byte[1024];
	private int curChar;
	private int numChars;
	private SpaceCharFilter filter;
	
	public InputReader(InputStream stream){this.stream = stream;}
	public int read(){
		if (numChars==-1) throw new InputMismatchException();
		if (curChar >= numChars){
			curChar = 0;
			try {numChars = stream.read(buf);}
			catch (IOException e){throw new InputMismatchException();}
			if(numChars <= 0) return -1;
		}
		return buf[curChar++];
	}

	public int readInt(){
		int c = read();
		while(isSpaceChar(c)) c = read();
		int sgn = 1;
		if (c == '-') {sgn = -1;c = read();}
		int res = 0;
		do {
			if(c<'0'||c>'9') throw new InputMismatchException();
			res *= 10;
			res += c - '0';
			c = read();
		}
		while (!isSpaceChar(c)); return res * sgn;
	}
	public void inputI0(int a[],int n)
	{
		for(int i=0;i<n;i++)
			a[i]=readInt();
	}
	public void inputI1(int a[],int n)
	{
		for(int i=1;i<=n;i++)
			a[i]=readInt();
	}
	public long readLong() {
		int c = read();
		while (isSpaceChar(c))
			c = read();
		int sgn = 1;
		if (c == '-') {
			sgn = -1;
			c = read();
      }
		long res = 0;
		do {
			if (c < '0' || c > '9')
				throw new InputMismatchException();
			res *= 10;
			res += c - '0';
			c = read();
      }
		while (!isSpaceChar(c));
          return res * sgn;
  }
	public void inputL0(long a[],int n)
	{
		for(int i=0;i<n;i++)
			a[i]=readLong();
	}
	public void inputL1(long a[],int n)
	{
		for(int i=1;i<=n;i++)
			a[i]=readLong();
	}
	public double readDouble() {
      int c = read();
      while (isSpaceChar(c))
          c = read();
      int sgn = 1;
		if (c == '-') {
			sgn = -1;
			c = read();
      }
		double res = 0;
		while (!isSpaceChar(c) && c != '.') {
			if (c == 'e' || c == 'E')
				return res * Math.pow(10, readInt());
			if (c < '0' || c > '9')
				throw new InputMismatchException();
			res *= 10;
			res += c - '0';
			c = read();
      }
		if (c == '.') {
			c = read();
			double m = 1;
			while (!isSpaceChar(c)) {
				if (c == 'e' || c == 'E')
					return res * Math.pow(10, readInt());
				if (c < '0' || c > '9')
					throw new InputMismatchException();
				m /= 10;
				res += (c - '0') * m;
				c = read();
          }
      }
		return res * sgn;
  }
	
	public String readString() {
		int c = read();
		while (isSpaceChar(c))
			c = read();
		StringBuilder res = new StringBuilder();
		do {
			res.appendCodePoint(c);
			c = read();
		} while (!isSpaceChar(c));
		return res.toString();
	}

	public boolean isSpaceChar(int c) {
		if (filter != null)
			return filter.isSpaceChar(c);
		return c == ' ' || c == '\n' || c == '\r' || c == '\t' || c == -1;
		}

	public String next() {
		return readString();
	}
	
	public interface SpaceCharFilter {
		public boolean isSpaceChar(int ch);
	}
}

