// Problem: C - Tricolor Pyramid
// Contest: AtCoder - AtCoder Regular Contest 117
// URL: https://atcoder.jp/contests/arc117/tasks/arc117_c
// Memory Limit: 1024 MB
// Time Limit: 2000 ms
// 
// Powered by CP Editor (https://cpeditor.org)
#include <stdio.h>
#include <string.h> 
#include <algorithm>
#include <queue>
//#define int long long
inline int read()
{
	int num=0,f=1;char c=getchar();
	while(c<48||c>57){if(c=='-')f=-1;c=getchar();}
	while(c>47&&c<58)num=num*10+(c^48),c=getchar();
	return num*f;
}
#include <stdio.h>
typedef long long ll;
const int p=3;
ll f[100005];
void init()
{
	f[0] = 1;
	for (int i = 1; i <= p; ++i) f[i] = f[i - 1] * i % p;
}
ll pow_mod(ll a, ll x)
{
	ll ret = 1;
	while (x)
	{
		if (x & 1)  ret = ret * a % p;
		a = a * a % p;
		x >>= 1;
	}
	return ret;
}
inline int pow_mod(int x,int y,int z)
{
	return x;
}
ll C(ll n, ll m){
	return (m>n ? 0 : ((f[n] * pow_mod(f[m], p - 2, p)) % p*pow_mod(f[n - m], p - 2, p) % p));
}
ll Lucas(ll n, ll k)
{
	return (k ? ((C(n%p, k%p) % p)*Lucas(n / p, k / p) % p) % p : 1);
}
/*int main()
{
	scanf("%*d");
	int p, n, m;
	while (~scanf("%d%d%d", &n, &m, &p))
		printf("%lld\n", (init(p), Lucas(n + m, n, p)));
	return 0;
}*/
inline int re1d()
{
	char c=getchar();
//	while(c<48||c>49)c=getchar();
	while(c<'A'||c>'Z')c=getchar();
	return c=='B'?0:c=='W'?1:2;
}
inline int min(int a,int b){return a>b?b:a;}
inline int max(int a,int b){return a<b?b:a;}
signed main()
{
	init();
	int n=read(),ans=0;
	for(int i=0;i<n;i++)
	{
		int x=re1d();
		ans=ans+x*Lucas(n-1,i);
		ans%=3;
	}
	if(n&1);else ans=(6-ans)%3;
	printf("%c\n","BWR"[ans]);
}

#pragma GCC optimize ("Ofast")
#include"bits/stdc++.h"
using namespace std;

//#include <ext/pb_ds/assoc_container.hpp>
//#include <ext/pb_ds/tree_policy.hpp>
//using namespace __gnu_pbds;

struct _ { ios_base::Init i; _() { cin.sync_with_stdio(0); cin.tie(0); cout << fixed << setprecision(10); } } ___;
#define trace(...) __f(#__VA_ARGS__, __VA_ARGS__)
template <typename Arg1>
void __f(const char* name, Arg1&& arg1) {
    cerr << name << " : " << arg1 << endl;
}
template <typename Arg1, typename... Args>
void __f(const char* names, Arg1&& arg1, Args&&... args) {
    const char* comma = strchr(names + 1, ',');
    cerr.write(names, comma - names) << " : " << arg1 << "  ";
    __f(comma + 1, args...);
}

#define ll long long
#define pii pair<int,int>
#define oset tree<int, null_type,less<int>, rb_tree_tag,tree_order_statistics_node_update>
#define ff first
#define ss second
#define endll '\n'
#define rep(i,n) for(int i=0;i++<n;)
#define scl(i) scanf("%lld",&i)
#define int long long int
#define all(n) n.begin(),n.end()
#define mem(n,i) memset(n,i,sizeof n)
#define em(a) emplace_back(a)
#define pb(a) push_back(a)
#define srep(it,vv) for(auto &it : vv)
#define prep(it,vv) for(auto it : vv)
#define b_s(a,b) binary_search(a.begin(),a.end(),b)
#define l_b(a,b) lower_bound(a.begin(),a.end(),b)
#define u_b(a,b) upper_bound(a.begin(),a.end(),b)
//vector<vector<int>>arr(n + 5, vector<int>(m + 5,0));

typedef vector<int> vii;
typedef vector<string> vss;
/*

*/
signed main()
{
#ifndef ONLINE_JUDGE
    freopen("input.txt", "r", stdin);
    freopen("output.txt", "w", stdout);
#endif
    int k; cin >> k;
    int ans = 0;
    for (int i = 1; i * 2 <= k; i++)
    {
        for (int j = 1; j * i <= k; j++)
        {
            ans += k / (i * j);
        }
        //trace(i, ans);
    }
    cout << ans + (k - (k / 2) );
}