Problem: The Easter Rabbit laid n eggs in a circle and is about to paint them. 

Each egg should be painted one color out of 7: red, orange, yellow, green, blue, indigo or violet. Also, the following conditions should be satisfied:

  * Each of the seven colors should be used to paint at least one egg. 
  * Any four eggs lying sequentially should be painted different colors. 



Help the Easter Rabbit paint the eggs in the required manner. We know that it is always possible.

Input

The only line contains an integer n — the amount of eggs (7 ≤ n ≤ 100).

Output

Print one line consisting of n characters. The i-th character should describe the color of the i-th egg in the order they lie in the circle. The colors should be represented as follows: "R" stands for red, "O" stands for orange, "Y" stands for yellow, "G" stands for green, "B" stands for blue, "I" stands for indigo, "V" stands for violet.

If there are several answers, print any of them.

Examples

Input

8


Output

ROYGRBIV


Input

13


Output

ROYGBIVGBIVYG

Note

The way the eggs will be painted in the first sample is shown on the picture: 

<image>

Solution (in CPP):

Solution:
#include <bits/stdc++.h>
using namespace std;
template <typename ValueType>
void printVec(vector<ValueType> v) {
  for (int i = 0; i < v.size(); i++) {
    if (i != v.size() - 1) {
      cout << v[i];
    } else {
      cout << v[i] << endl;
    }
  }
}
string lowercase(string s) {
  transform(s.begin(), s.end(), s.begin(),
            [](unsigned char c) { return tolower(c); });
  return s;
}
string uppercase(string s) {
  transform(s.begin(), s.end(), s.begin(),
            [](unsigned char c) { return toupper(c); });
  return s;
}
template <typename KeyType, typename ValueType>
std::pair<KeyType, ValueType> get_max(const std::map<KeyType, ValueType>& x) {
  using pairtype = std::pair<KeyType, ValueType>;
  return *std::max_element(x.begin(), x.end(),
                           [](const pairtype& p1, const pairtype& p2) {
                             return p1.second < p2.second;
                           });
}
char numberToLowerCase(int num) { return 'a' + num; }
char numberToUpperCase(int num) { return 'A' + num; }
bool isPerfectSquare(long long x) {
  long long x2 = sqrt(x);
  return x2 * x2 == x;
}
map<string, int> ids;
int getid(const string& name) {
  if (ids.find(name) == ids.end()) {
    ids[name] = ids.size();
  }
  return ids[name];
}
int main() {
  cin.sync_with_stdio(0);
  cin.tie(0);
  int n;
  cin >> n;
  map<int, string> mp;
  mp[0] = "R";
  mp[1] = "O";
  mp[2] = "Y";
  mp[3] = "G";
  mp[4] = "B";
  mp[5] = "I";
  mp[6] = "V";
  vector<string> word(n);
  for (int i = 0; i < n - 3; i++) {
    word[i] = mp[i % 7];
  }
  for (int i = 0; i <= 6; i++) {
    if (mp[i] != word[0] && mp[i] != word[1] && mp[i] != word[2] &&
        mp[i] != word[n - 3] && mp[i] != word[n - 4] && mp[i] != word[n - 2]) {
      word[n - 1] = mp[i];
    }
  }
  for (int i = 0; i <= 6; i++) {
    if (mp[i] != word[0] && mp[i] != word[1] && mp[i] != word[n - 1] &&
        mp[i] != word[n - 5] && mp[i] != word[n - 3] && mp[i] != word[n - 4]) {
      word[n - 2] = mp[i];
    }
  }
  for (int i = 0; i <= 6; i++) {
    if (mp[i] != word[0] && mp[i] != word[n - 6] && mp[i] != word[n - 1] &&
        mp[i] != word[n - 5] && mp[i] != word[n - 2] && mp[i] != word[n - 4]) {
      word[n - 3] = mp[i];
    }
  }
  for (int i = 0; i <= 6; i++) {
    if (mp[i] != word[0] && mp[i] != word[1] && mp[i] != word[2] &&
        mp[i] != word[n - 3] && mp[i] != word[n - 4] && mp[i] != word[n - 2]) {
      word[n - 1] = mp[i];
    }
  }
  for (int i = 0; i <= 6; i++) {
    if (mp[i] != word[0] && mp[i] != word[1] && mp[i] != word[n - 1] &&
        mp[i] != word[n - 5] && mp[i] != word[n - 3] && mp[i] != word[n - 4]) {
      word[n - 2] = mp[i];
    }
  }
  for (int i = 0; i <= 6; i++) {
    if (mp[i] != word[0] && mp[i] != word[n - 6] && mp[i] != word[n - 1] &&
        mp[i] != word[n - 5] && mp[i] != word[n - 2] && mp[i] != word[n - 4]) {
      word[n - 3] = mp[i];
    }
  }
  printVec(word);
}