#include <bits/stdc++.h>
#define INF LLONG_MAX/2
#define rep(i,n) for(int i = 0; i <(n) ; i++)
using namespace std;
typedef long long ll;
typedef  __int128_t LL; //入出力では使えないことに注意が必要. 計算過程で途中64bitを超える可能性があるときに使う
typedef pair<ll,ll> pll;
#define all(x) (x).begin(), (x).end()
template<class T> inline bool chmax(T& a, T b) { if (a < b) { a = b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b) { if (a > b) { a = b; return 1; } return 0; }

vector<ll> A;


// vector<vector<ll> > dp(N+1, vector<ll>(2, 0));
// vector<vector<vector<ll> > > dp(N, vector<vector<ll> >(M, vector<ll>(L, 0)));
int main(){
    string s;
    ll N;
    cin >> s;
    N = s.size();
    
    vector<ll> idx;
    idx.push_back(-1);
    ll rnum = 0;
    for(ll i=0; i<N; i++){
        if(s[i]=='R'){
            idx.push_back(i);
            rnum ++;
        }
    }
    string T = "";

    for(ll i=rnum; i>=1; i-=2){
        for(int j = idx[i]-1; j > idx[i-1]; j--){
            T += s[j];
            if(T[T.size()-1] == T[T.size()-2]){
                T = T.erase(T.size()-2);
            }
        }
    }
    // cout << T << endl;
    ll p = 0;
    if(rnum%2==1) p =1;
    for(ll i=p; i<rnum; i+=2){
        for(int j = idx[i]+1; j < idx[i+1]; j++){
            T += s[j];
            if(T[T.size()-1] == T[T.size()-2]){
                T = T.erase(T.size()-2);
            }
        }
    }
    // cout << T << endl;



    
    
    // for(int i = 1; i < idx.size(); i++){
    //     for(int j = idx[i]-1; j > idx[i-1]; j--){
    //         T += s[j];
    //         if(T.size()>=2){
    //             if(T[T.size()-1] == T[T.size()-2]){
    //                 T = T.erase(T.size()-2);
    //             }
    //         }else if(T.size()==2){
    //             if(T[T.size()-1] == T[T.size()-2]){
    //                 T = "";
    //             }
    //         }
    //         // cout << s[j] << endl;
    //     }
    // }
    for(ll i=idx[idx.size()-1]+1; i<N; i++){
        T += s[i];
        if(T[T.size()-1] == T[T.size()-2]){
                T = T.erase(T.size()-2);
            }
            // cout << T << endl;
    }
    
    cout << T << endl;

    // T = "";
    // for(ll i=0; i<N; i++){
    //     if(s[i]=='R'){
    //         reverse(all(T));
    //     }else{
    //         T += s[i];
    //         if(T[T.size()-1] == T[T.size()-2]){
    //             T = T.erase(T.size()-2);
    //         }
    //     }
    // }
    // cout << T << endl;
    return 0;
}
// For the purpose of C++ competitive programming only.
#include "bits/stdc++.h"
using namespace std;

#define FOR(a, c) for (int(a) = 0; (a) < (c); (a)++)
#define FORL(a, b, c) for (int(a) = (b); (a) < (c); (a)++)
#define FORR(a, b, c) for (int(a) = (b); (a) > (c); (a)--)
#define INF 1000000000000000003
#define MOD 1000000007
#define F first
#define S second
#define pb push_back
#define pob pop_back
#define mp make_pair
#define endl '\n'

typedef long long int ll;
typedef vector<int> vi;
typedef vector<vector<int>> vvi;

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);
    string s;
    cin >> s;
    deque<char> ret;
    bool rev = false;
    for (auto &c : s) {
        if (c == 'R') {
            rev ^= 1;
        } else {
            if (!rev) {
                if (ret.size() && ret.back() == c) {
                    ret.pop_back();
                } else {
                    ret.push_back(c);
                }
            } else {
                if (ret.size() && ret.front() == c) {
                    ret.pop_front();
                } else {
                    ret.push_front(c);
                }
            }
        }
    }
    if (!rev) {
        for (auto it = ret.begin(); it != ret.end(); it++) {
            cout << *it;
        }
    } else {
        for (auto it = ret.rbegin(); it != ret.rend(); it++) {
            cout << *it;
        }
    }
    cout << endl;
    return 0;
}