import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) {
		InputReader reader = new InputReader(System.in);
		System.out.println(
				"OOOoOooOooooOoooooooOooooooooooooOooooooooooooooooooooOoooooooooooooooooooooooooooooooooOooooooooooooooooooooooooooooooooooooooooooooooooooooooOooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooOoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooOooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooOooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooOooooooooooooo"
						.substring(0, reader.nextInt()));
	}

	static <T extends Number & Comparable<T>> void bubbleSort(T[] array) {
		int a = array[0].compareTo(array[0]);
	}

	static <T extends Comparable<T>> void mergeSort(T[] arr, int left, int right) {
		// Recursion termination

		// Find mid
		int mid = (left + right) >> 1;

		// Sort left and right parts
		mergeSort(arr, left, mid);
		mergeSort(arr, mid + 1, right);

		// merge
		int leftHead = 0;
		int rightHead = 0;
		T[] leftPart = Arrays.copyOfRange(arr, left, mid + 1);
		T[] rightPart = Arrays.copyOfRange(arr, mid + 1, right + 1);

		for (int i = left; i <= right; ++i) {

		}

	}

	static class Staff implements Comparable<Staff> {
		public int id;
		public int sale;

		public Staff(int id, int sale) {
			this.id = id;
			this.sale = sale;
		}

		@Override
		public String toString() {
			return id + " " + sale;
		}

		@Override
		public int compareTo(Staff other) {
			return this.sale - other.sale;
		}
	}

	static class InputReader {
		StringTokenizer tokenizer;
		BufferedReader reader;
		String token;
		String temp;

		public InputReader(InputStream stream) {
			tokenizer = null;
			reader = new BufferedReader(new InputStreamReader(stream));
		}

		public InputReader(FileInputStream stream) {
			tokenizer = null;
			reader = new BufferedReader(new InputStreamReader(stream));
		}

		public String nextLine() throws IOException {
			return reader.readLine();
		}

		public String next() {
			while (tokenizer == null || !tokenizer.hasMoreTokens()) {
				try {
					if (temp != null) {
						tokenizer = new StringTokenizer(temp);
						temp = null;
					} else {
						tokenizer = new StringTokenizer(reader.readLine());
					}

				} catch (IOException e) {
				}
			}
			return tokenizer.nextToken();
		}

		public double nextDouble() {
			return Double.parseDouble(next());
		}

		public int nextInt() {
			return Integer.parseInt(next());
		}

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

class A {
	public void print() {
		System.out.println("10");
	}
}

class B extends A {

	public void print() {
		System.out.println("A");
	}
}