#include <algorithm>
#include <deque>
#include <iostream>

using namespace std;

int main() {
  string S;

  cin >> S;
  int n = S.length();

  deque<char> deq;
  bool is_rev = false;

  for (int i = 0; i < n; i++) {
    char c = S[i];
    if (c == 'R') {
      is_rev = !is_rev;
    } else {
      if (is_rev) {
        if (deq.size() >= 1 && *deq.begin() == c) {
          deq.pop_front();
        } else {
          deq.push_front(c);
        }
      } else {
        if (deq.size() >= 1 && *(deq.end() - 1) == c) {
          deq.pop_back();
        } else {
          deq.push_back(c);
        }
      }
    }
  }

  string T = "";
  for (auto it = deq.begin(); it != deq.end(); it++) {
    T += *it;
  }

  if (is_rev) {
    reverse(T.begin(), T.end());
  }

  cout << T << endl;

  return 0;
}
/*
	author: Divy Agrawal
*/
#include<bits/stdc++.h>
using namespace std;
#define fs first
#define sc second
#define bg begin
#define ed end
#define sz size
#define mkp make_pair
#define pb push_back
#define ll long long
#define f0(i,n) for(int i=0;i<n;i++)
#define f1(i,n) for(int i=1;i<=n;i++)
#define fe0(i,n) for(int i=0;i<=n;i++)
#define vi vector<int>
#define vvi vector<vi>
#define vl vector<ll>
#define vvl vector<vl>
#define pii pair<int,int>
#define pll pair<ll,ll>
#define all(x) x.bg(), x.ed()
#define allgi(x) x.bg(), x.ed(), greater<int>()
#define allgl(x) x.bg(), x.ed(), greater<ll>()
#define sorti(x) sort(all(x))
#define sortgi(x) sort(allgi(x))
#define sortgl(x) sort(allgl(x))
int main(){
	int t=1;
	// cin>>t;
	while(t--){
		string s;
		cin>>s;
		int cnt=0;
		int n=s.sz();
		string temp;
		deque<char> dq;
		f0(i,n){
			if(s[i]=='R'){
				cnt++;
				cnt%=2;
			}
			else{
				// if(cnt){
				// 	// cout<<temp<<endl;
				// 	temp=string(temp.rbegin(),temp.rend());
				// 	cnt=0;
				// 	// cout<<temp<<endl;
				// }
				if(cnt==0){
					if(dq.empty()){
						dq.push_back(s[i]);
					}
					else if(dq.back()==s[i]){
						dq.pop_back();
					}
					else{
						dq.push_back(s[i]);
					}
				}
				else{
					if(dq.empty()){
						dq.push_back(s[i]);
					}
					else if(dq.front()==s[i]){
						dq.pop_front();
					}
					else{
						dq.push_front(s[i]);
					}
				}
				// temp.pb(s[i]);
			}
		}
		// cout<<temp<<endl;
		string t1;
		while(!dq.empty()){
			if(cnt){
				t1.pb(dq.back());
				dq.pop_back();
			}
			else{
				t1.pb(dq.front());
				dq.pop_front();
			}
		}
		// int r;
		// f0(i,temp.sz()){
		// 	// cout<<t1<<endl;
		// 	if(i==0){
		// 		t1.pb(temp[i]);
		// 		r=t1.size();
		// 	}
		// 	else{
		// 		// cout<<"&&"<<endl;
		// 		if(t1[r-1]==temp[i]){
		// 			t1.pop_back();
		// 			r=t1.sz();
		// 		}
		// 		else{
		// 			t1.pb(temp[i]);
		// 			r=t1.size();
		// 		}
		// 	}
		// }
		cout<<t1<<endl;
	}
}