#include <cstring>
#include <string>
#include <map>
#include <deque>
#include <queue>
#include <stack>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <algorithm>
#include <vector>
#include <set>
#include <list>
#include <climits>
#include <functional>
using namespace std;
#define MAP map <int, string>
int main(){
// freopen("in.txt", "r", stdin);
int T; scanf("%d", &T);
while(T--){
int n, t, m; scanf("%d %d %d", &n, &t, &m);
MAP Cars;
while(m--){
int Arrival; string Bank;
cin >> Arrival >> Bank;
Cars[Arrival] = Bank;
}
int Passed_Time = 0; string Ferry_Bank = "left";
for(MAP::iterator it = Cars.begin(); it != Cars.end(); ){
int Cnt = 0;
if(it->first <= Passed_Time){
if(it->second != Ferry_Bank){
Passed_Time += t; Ferry_Bank = it->second;
}
while(it != Cars.end() && Cnt < n && it->first <= Passed_Time && it->second == Ferry_Bank){
Cnt++; it++;
}
Passed_Time += t;
while(Cnt--) printf("%d\n", Passed_Time);
Ferry_Bank = (Ferry_Bank == "left") ? "right":"left";
}
else Passed_Time = it->first;
}
if(T) puts("");
}
return 0;
}
I2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxzdHJpbmc+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDx2ZWN0b3I+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxsaXN0PgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPGZ1bmN0aW9uYWw+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKI2RlZmluZSBNQVAgbWFwIDxpbnQsIHN0cmluZz4KCmludCBtYWluKCl7Ci8vCWZyZW9wZW4oImluLnR4dCIsICJyIiwgc3RkaW4pOwoJaW50IFQ7IHNjYW5mKCIlZCIsICZUKTsKCXdoaWxlKFQtLSl7CgkJaW50IG4sIHQsIG07IHNjYW5mKCIlZCAlZCAlZCIsICZuLCAmdCwgJm0pOwoJCU1BUCBDYXJzOwoJCXdoaWxlKG0tLSl7CgkJCWludCBBcnJpdmFsOyBzdHJpbmcgQmFuazsKCQkJY2luID4+IEFycml2YWwgPj4gQmFuazsKCQkJQ2Fyc1tBcnJpdmFsXSA9IEJhbms7CgkJfQoJCWludCBQYXNzZWRfVGltZSA9IDA7IHN0cmluZyBGZXJyeV9CYW5rID0gImxlZnQiOwoJCWZvcihNQVA6Oml0ZXJhdG9yIGl0ID0gQ2Fycy5iZWdpbigpOyBpdCAhPSBDYXJzLmVuZCgpOyApewoJCQlpbnQgQ250ID0gMDsKCQkJaWYoaXQtPmZpcnN0IDw9IFBhc3NlZF9UaW1lKXsKCQkJCWlmKGl0LT5zZWNvbmQgIT0gRmVycnlfQmFuayl7CgkJCQkJUGFzc2VkX1RpbWUgKz0gdDsgRmVycnlfQmFuayA9IGl0LT5zZWNvbmQ7CgkJCQl9CgkJCQl3aGlsZShpdCAhPSBDYXJzLmVuZCgpICYmIENudCA8IG4gJiYgaXQtPmZpcnN0IDw9IFBhc3NlZF9UaW1lICYmIGl0LT5zZWNvbmQgPT0gRmVycnlfQmFuayl7CgkJCQkJQ250Kys7IGl0Kys7CgkJCQl9CgkJCQlQYXNzZWRfVGltZSArPSB0OwoJCQkJd2hpbGUoQ250LS0pIHByaW50ZigiJWRcbiIsIFBhc3NlZF9UaW1lKTsKCQkJCUZlcnJ5X0JhbmsgPSAoRmVycnlfQmFuayA9PSAibGVmdCIpID8gInJpZ2h0IjoibGVmdCI7CgkJCX0KCQkJZWxzZSBQYXNzZWRfVGltZSA9IGl0LT5maXJzdDsKCQl9CgkJaWYoVCkgcHV0cygiIik7Cgl9CglyZXR1cm4gMDsKfQ==
MgoyIDEwIDEwCjAgbGVmdAoxMCBsZWZ0CjIwIGxlZnQKMzAgbGVmdAo0MCBsZWZ0CjUwIGxlZnQKNjAgbGVmdAo3MCBsZWZ0CjgwIGxlZnQKOTAgbGVmdAoyIDEwIDMKMTAgcmlnaHQKMjUgbGVmdAo0MCBsZWZ0
2
2 10 10
0 left
10 left
20 left
30 left
40 left
50 left
60 left
70 left
80 left
90 left
2 10 3
10 right
25 left
40 left