/// UVA 10901 - Ferry Loading III
#include <bits/stdc++.h>
#define X first
#define Y second
#define pb push_back
using namespace std;
typedef long long ll;
typedef pair <int,int> ii;
typedef pair <int,ii> i_ii;
typedef vector <int> vi;
typedef vector <ii> vii;
const int maxn=102;
const ll MOD=1000000007;
int T;
int n,t,m,pos,x,curTime,curCar;
string s;
vector <int> Res;
int main()
{
// freopen("nhap.inp", "r", stdin);
cin >> T;
for (int test = 1; test <= T; test++)
{
cin >> n >> t >> m;
curTime = curCar = pos = 0;
queue <ii> L;
queue <ii> R;
Res.assign(m+1,0);
for (int i = 1; i <= m; i++)
{
cin >> x >> s;
if (s[0] == 'l')
L.push(ii(x,i));
else R.push(ii(x,i));
}
while (curCar < m)
{
bool checkL = false, checkR = false;
if (pos == 0)
{
for (int i = 1; i <= n; i++)
{
if (L.empty() || L.front().X > curTime) break;
Res[L.front().Y] = curTime + t;
L.pop();
checkL = true;
curCar++;
}
if (checkL)
{
pos = 1;
curTime += t;
}
else
{
if (!L.empty() && !R.empty())
{
if (L.front().X <= R.front().X)
curTime = L.front().X;
else curTime = max(curTime,R.front().X) + t, pos=1;
}
else if (L.empty())
{
if (R.front().X <= curTime) curTime += t;
else curTime = R.front().X + t;
pos=1;
}
else curTime = L.front().X;
}
}
else
{
for (int i = 1; i <= n; i++)
{
if (R.empty() || R.front().X > curTime) break;
Res[R.front().Y] = curTime + t;
R.pop();
checkR = true;
curCar++;
}
if (checkR)
{
pos = 0;
curTime += t;
}
else
{
if (!L.empty() && !R.empty())
{
if (L.front().X >= R.front().X)
curTime = R.front().X;
else curTime = max(curTime,L.front().X) + t, pos=0;
}
else if (R.empty())
{
if (L.front().X <= curTime) curTime += t;
else curTime = L.front().X + t;
pos=0;
}
else curTime = R.front().X;
}
}
}
for (int i = 1; i <= m; i++)
printf("%d\n",Res[i]);
if (test != T) cout<<endl;
}
return 0;
}
Ly8vIFVWQSAxMDkwMSAtIEZlcnJ5IExvYWRpbmcgSUlJCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIFggZmlyc3QKI2RlZmluZSBZIHNlY29uZAojZGVmaW5lIHBiIHB1c2hfYmFjawp1c2luZyBuYW1lc3BhY2Ugc3RkOwp0eXBlZGVmIGxvbmcgbG9uZyBsbDsKdHlwZWRlZiBwYWlyIDxpbnQsaW50PiBpaTsKdHlwZWRlZiBwYWlyIDxpbnQsaWk+IGlfaWk7CnR5cGVkZWYgdmVjdG9yIDxpbnQ+IHZpOwp0eXBlZGVmIHZlY3RvciA8aWk+IHZpaTsKCmNvbnN0IGludCBtYXhuPTEwMjsKY29uc3QgbGwgTU9EPTEwMDAwMDAwMDc7CgppbnQgVDsKaW50IG4sdCxtLHBvcyx4LGN1clRpbWUsY3VyQ2FyOwpzdHJpbmcgczsKdmVjdG9yIDxpbnQ+IFJlczsKCmludCBtYWluKCkKewovLyAgICBmcmVvcGVuKCJuaGFwLmlucCIsICJyIiwgc3RkaW4pOwogICAgY2luID4+IFQ7CiAgICBmb3IgKGludCB0ZXN0ID0gMTsgdGVzdCA8PSBUOyB0ZXN0KyspCiAgICB7CiAgICAgICAgY2luID4+IG4gPj4gdCA+PiBtOwogICAgICAgIGN1clRpbWUgPSBjdXJDYXIgPSBwb3MgPSAwOwogICAgICAgIHF1ZXVlIDxpaT4gTDsKICAgICAgICBxdWV1ZSA8aWk+IFI7CiAgICAgICAgUmVzLmFzc2lnbihtKzEsMCk7CgogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbiA+PiB4ID4+IHM7CiAgICAgICAgICAgIGlmIChzWzBdID09ICdsJykKICAgICAgICAgICAgICAgIEwucHVzaChpaSh4LGkpKTsKICAgICAgICAgICAgZWxzZSBSLnB1c2goaWkoeCxpKSk7CiAgICAgICAgfQogICAgICAgIHdoaWxlIChjdXJDYXIgPCBtKQogICAgICAgIHsKICAgICAgICAgICAgYm9vbCBjaGVja0wgPSBmYWxzZSwgY2hlY2tSID0gZmFsc2U7CgogICAgICAgICAgICBpZiAocG9zID09IDApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoTC5lbXB0eSgpIHx8IEwuZnJvbnQoKS5YID4gY3VyVGltZSkgICBicmVhazsKICAgICAgICAgICAgICAgICAgICBSZXNbTC5mcm9udCgpLlldID0gY3VyVGltZSArIHQ7CiAgICAgICAgICAgICAgICAgICAgTC5wb3AoKTsKICAgICAgICAgICAgICAgICAgICBjaGVja0wgPSB0cnVlOwogICAgICAgICAgICAgICAgICAgIGN1ckNhcisrOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgaWYgKGNoZWNrTCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBwb3MgPSAxOwogICAgICAgICAgICAgICAgICAgIGN1clRpbWUgKz0gdDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBpZiAoIUwuZW1wdHkoKSAmJiAhUi5lbXB0eSgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKEwuZnJvbnQoKS5YIDw9IFIuZnJvbnQoKS5YKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VyVGltZSA9IEwuZnJvbnQoKS5YOwogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGN1clRpbWUgPSBtYXgoY3VyVGltZSxSLmZyb250KCkuWCkgKyB0LCBwb3M9MTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBpZiAoTC5lbXB0eSgpKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgaWYgKFIuZnJvbnQoKS5YIDw9IGN1clRpbWUpIGN1clRpbWUgKz0gdDsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjdXJUaW1lID0gUi5mcm9udCgpLlggKyB0OwogICAgICAgICAgICAgICAgICAgICAgICBwb3M9MTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgZWxzZSBjdXJUaW1lID0gTC5mcm9udCgpLlg7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKFIuZW1wdHkoKSB8fCBSLmZyb250KCkuWCA+IGN1clRpbWUpICAgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgUmVzW1IuZnJvbnQoKS5ZXSA9IGN1clRpbWUgKyB0OwogICAgICAgICAgICAgICAgICAgIFIucG9wKCk7CiAgICAgICAgICAgICAgICAgICAgY2hlY2tSID0gdHJ1ZTsKICAgICAgICAgICAgICAgICAgICBjdXJDYXIrKzsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGlmIChjaGVja1IpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcG9zID0gMDsKICAgICAgICAgICAgICAgICAgICBjdXJUaW1lICs9IHQ7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYgKCFMLmVtcHR5KCkgJiYgIVIuZW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMLmZyb250KCkuWCA+PSBSLmZyb250KCkuWCkKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGN1clRpbWUgPSBSLmZyb250KCkuWDsKICAgICAgICAgICAgICAgICAgICAgICAgZWxzZSBjdXJUaW1lID0gbWF4KGN1clRpbWUsTC5mcm9udCgpLlgpICsgdCwgcG9zPTA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgaWYgKFIuZW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChMLmZyb250KCkuWCA8PSBjdXJUaW1lKSBjdXJUaW1lICs9IHQ7CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UgY3VyVGltZSA9IEwuZnJvbnQoKS5YICsgdDsKICAgICAgICAgICAgICAgICAgICAgICAgcG9zPTA7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGVsc2UgY3VyVGltZSA9IFIuZnJvbnQoKS5YOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvciAoaW50IGkgPSAxOyBpIDw9IG07IGkrKykKICAgICAgICAgICAgcHJpbnRmKCIlZFxuIixSZXNbaV0pOwogICAgICAgIGlmICh0ZXN0ICE9IFQpICBjb3V0PDxlbmRsOwogICAgfQogICAgcmV0dXJuIDA7Cn0K