#include<bits/stdc++.h>#define ll long long
using namespace std;constint maxn =1e5+10, M =1e9;
ll a[maxn], b[maxn], N =4e9;;
multiset<ll> s1, s2;
priority_queue<ll, vector<ll>, greater<ll>> Q;int sum[maxn *40], ls[maxn *40], rs[maxn *40];int cnt, rt;voidup(int& o, ll l, ll r, ll k){if(!o)
o =++cnt;
sum[o]++;if(l == r)return;
ll m =(l + r)/2;if(k <= m)up(ls[o], l, m, k);elseup(rs[o], m +1, r, k);}intqu(int o, ll l, ll r, ll k){if(r <= k)return sum[o];
ll m =(l + r)/2;int res =qu(ls[o], l, m, k);if(k > m)
res +=qu(rs[o], m +1, r, k);return res;}intok(ll T,int k){int res =0;for(auto x : s1){if(T - x <0)return0;int tmp =qu(rt,0, N, T - x);if(!tmp)return0;
res += tmp;if(res >= k)return1;}return0;}intmain(){int n, m, q;scanf("%d%d%d",&n,&m,&q);for(int i =1; i <= n; i++)scanf("%lld",&a[i]), a[i]+= M;for(int i =1; i <= m; i++)scanf("%lld",&b[i]), b[i]+= M;int x =1, y =1, d;
s1.insert(a[1]);
s2.insert(b[1]);up(rt,0, N , b[1]);char s[2];while(q--){scanf("%s%d", s,&d);if(s[0]=='R'){for(int i = y +1; i <=min(m, y + d); i++)
s2.insert(b[i]),up(rt,0, N, b[i]);
y += d;
y =min(y, m);}elseif(s[0]=='D'){for(int i = x +1; i <=min(n, x + d); i++)
s1.insert(a[i]);
x += d;
x =min(x, n);}else{
ll l =0, r = N;while(l < r){
ll m =(l + r)/2;if(ok(m, d))
r = m;else
l = m +1;}int res =0;for(auto t1 : s1){int flag =0;for(auto t2 : s2){if(t1 + t2 < l)
Q.push(t1 - M + t2 - M), flag =1;elsebreak;}if(!flag)break;}while(!Q.empty()&& d){printf("%lld", Q.top());
Q.pop();
d--;if(d)printf(" ");}while(d--){printf("%lld", l - M *2);if(d)printf(" ");}puts("");}}}