#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp> // Common file
#include <ext/pb_ds/tree_policy.hpp> // Including tree_order_statistics_node_update
 
using namespace std;
using namespace __gnu_pbds;

template<typename key> using ordered_set = tree <key, null_type, less<key>, rb_tree_tag, tree_order_statistics_node_update>;

int main () {
   int n;
   scanf("%d", &n);
   long long int fi_1 = 1, fi_2 = 1, tot = 0;
   unordered_set< long long int > s;
   s.insert(1);
   for(int i = 3; i <= n; i++) {
	  tot = fi_1 + fi_2;
	  fi_1 = fi_2;
	  fi_2 = tot;
	  s.insert(tot);
   }
   for(int i = 1; i <= n; i++) {
	  if(s.count(i))
		 printf("O");
	  else
		 printf("o");
   }
   return 0;
}