#include <bits/stdc++.h>
using namespace std;
template <typename T>
istream& operator>>(istream& is, vector<T>& v) {
  for (auto& i : v) is >> i;
  return is;
}
template <typename T>
ostream& operator<<(ostream& os, vector<T> v) {
  for (auto& i : v) os << i << "\n";
  return os;
}
void solve() {
  int n, k, a, b;
  cin >> n >> k >> a >> b;
  string res;
  if (a < b) {
    int segments = a + 1;
    if ((b + segments - 1) / segments > k) {
      cout << "NO" << endl;
      return;
    }
    int cnt1 = b % segments;
    int cnt0 = segments - cnt1;
    int l0 = b / segments;
    for (int i = 0; i < cnt0; i++) {
      res += string(l0, 'B');
      if (i < segments - 1) res += "G";
    }
    for (int i = 0; i < cnt1; i++) {
      res += string(l0 + 1, 'B');
      if (i < cnt1 - 1) res += "G";
    }
  } else if (b < a) {
    swap(a, b);
    int segments = a + 1;
    if ((b + segments - 1) / segments > k) {
      cout << "NO" << endl;
      return;
    }
    int cnt1 = b % segments;
    int cnt0 = segments - cnt1;
    int l0 = b / segments;
    for (int i = 0; i < cnt0; i++) {
      res += string(l0, 'G');
      if (i < segments - 1) res += "B";
    }
    for (int i = 0; i < cnt1; i++) {
      res += string(l0 + 1, 'G');
      if (i < cnt1 - 1) res += "B";
    }
  } else {
    for (int i = 0; i < a; i++) res += "GB";
  }
  cout << res << endl;
}
int main() {
  std::ios::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int t = 1;
  while (t--) {
    solve();
  }
  return 0;
}
