#include <bits/stdc++.h>
using namespace std;
const int INF = 2147483647;
const long long LINF = 9223372036854775807;
const int MAX = 1009;
int dp[MAX];
set<int> s;
char a[MAX];
int n;
int f(int x) {
  if (dp[x] != 0 || x == 1 || x == 2) return dp[x];
  dp[x] = f(x - 1) + f(x - 2);
  return dp[x];
}
int main() {
  memset(dp, 0, sizeof dp);
  dp[1] = dp[2] = 1;
  cin >> n;
  for (int i = 1; i <= n; i++) {
    s.insert(f(i));
  }
  for (int i = 0; i < n; i++) {
    if (s.find(i + 1) != s.end())
      a[i] = 'O';
    else
      a[i] = 'o';
  }
  for (int i = 0; i < n; i++) cout << a[i];
  return 0;
}
