#include <bits/stdc++.h>
using namespace std;

#define int long long int
#define endl "\n"
#define aashish_999 ios_base::sync_with_stdio(false);cin.tie(NULL)

void solve()
{
	//read the question properly
	string s;
	cin >> s;
	string f, r;
	f = r = "";

	bool flag = false;
	int cnt = 0;

	for (auto i : s) {
		if (i == 'R')
			flag = !flag, ++cnt;
		else if (flag)
			r += i;
		else
			f += i;
	}

	string final;
	if (cnt % 2 == 0)
		reverse(r.begin(), r.end()), final = r + f;
	else reverse(f.begin(), f.end()), final = f + r;
	string ans = "";
	for (int i = 0; i < final.length(); i++) {
		if (ans.empty()) {
			ans += final[i];
			continue;
		}
		if (ans.back() == final[i]) {
			ans.pop_back();
		}
		else ans.push_back(final[i]);
	}

	cout << ans;
}

int32_t main()
{
	aashish_999;

	int testcases = 1;
	//cin >> testcases;
	while (testcases--)
	{
		solve();
	}
}
#define _USE_MATH_DEFINES

#include <iostream>
#include <cstring>
#include <regex>
#include <cmath>
#include <algorithm>
#include <vector>
#include <list>
#include <map>
#include <unordered_set>
#include <queue>
#include <unordered_map>
#include <set>
#include <cassert>
#include <climits>

#pragma GCC optimize("O3")

using namespace std;
using ll = long long;
using ull = unsigned long long;

#define rep(i, n) for(ll i = 0, i##_len = (n); i < i##_len; ++i)
#define repd(i, n) for(ll i = (n) - 1ll; i >= 0; --i)
#define FOR(i, a, b) for(ll i = a; i < ll(b); ++i)
#define FORD(i, a, b) for(ll i = a; i > ll(b); --i)
#define foreach(i, itr) for(auto& i : (itr))
#define asort(arr, size) std::sort(arr, arr + size)
#define dsort(arr, size) std::sort(arr, arr + size, [](auto a, auto b) { return a > b; })
#define cauto const auto&
#define bit(n) (1LL << (n))

////////////////////////////////////
// ここから下に任意のコードを書く //
////////////////////////////////////

int main() {
    string S;
    cin >> S;
    deque<char> T;
    bool R = false;
    rep(i, S.size()) {
        if (S[i] == 'R') {
            R = !R;
        }
        else if (T.empty()) {
            T.push_back(S[i]);
        }
        else if (R) {
            if (T.front() == S[i]) {
                T.pop_front();
            }
            else {
                T.push_front(S[i]);
            }
        }
        else {
            if (T.back() == S[i]) {
                T.pop_back();
            }
            else {
                T.push_back(S[i]);
            }
        }
    }
    if (R) {
        for_each(T.rbegin(), T.rend(), [](char c) { cout << c; });
    }
    else {
        for (char c : T) {
            cout << c;
        }
    }
    cout << endl;
    return 0;
}

//ll abi[5000][5];
//ll dp[5000][3][5];
//
//ll getPower(int index) {
//    ll res = INT_MAX;
//    rep(i, 3) {
//        ll mx = 0;
//        rep(j, 5) {
//            mx = max(mx, dp[index][i][j]);
//        }
//        res = min(res, mx);
//    }
//    return res;
//}
//
//int main()
//{
//    int N;
//    cin >> N;
//    rep(i, N) cin >> abi[i][0] >> abi[i][1] >> abi[i][2] >> abi[i][3] >> abi[i][4];
//
//    dp[0][0][0] = abi[0][0];
//    dp[0][0][1] = abi[0][1];
//    dp[0][0][2] = abi[0][2];
//    dp[0][0][3] = abi[0][3];
//    dp[0][0][4] = abi[0][4];
//    FOR(i, 1, N) {
//        int index = -1;
//        rep(j, 3) {
//            rep(k, 5) {
//                dp[i][j][k] = dp[i - 1][j][k];
//            }
//        }
//        ll res = INT_MAX;
//        rep(j, 3) {
//            ll mx = 0;
//            rep(k, 5) {
//                mx = max(mx, dp[i][j][k]);
//            }
//            res = min(res, mx);
//        }
//    }
//
//    return 0;
//}
