import java.util.Scanner;
import java.math.*;

public class Trains {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int tracksLength = sc.nextInt();
        int trainTracks = sc.nextInt();
        int currentTime = sc.nextInt();
        for (int i = 0; i < trainTracks; i++) {
            int leftMostCell = sc.nextInt();
            int speed = sc.nextInt();
            boolean left = (sc.next().equals("L"));
            int trainSize = sc.nextInt();

            int leftEnd;
            int rightEnd;
            if (left) {
                leftEnd = leftMostCell - (speed * currentTime);
                rightEnd = leftEnd + trainSize - 1;
            } else {
                leftEnd = leftMostCell + (speed * currentTime);
                rightEnd = leftEnd + trainSize - 1;
            }
            if (leftEnd > rightEnd) {
                int temp = leftEnd;
                leftEnd = rightEnd;
                rightEnd = temp;
            }

            String train;
            if (left) {
                train = "!" + "#".repeat(trainSize - 1);
            } else {
                train = "#".repeat(trainSize - 1) + "!";
            }


            StringBuilder answer = new StringBuilder();
            if (leftEnd >= tracksLength) {
                System.out.println("=".repeat(tracksLength));
            } else if (rightEnd < 0) {
                System.out.println("=".repeat(tracksLength));
            } else {
                answer.repeat("=", Math.max(0, leftEnd));
                answer.append(train.substring(Math.min(0, leftEnd) * -1, Math.min(train.length(), train.length() + (tracksLength - rightEnd) - 1)));
                answer.repeat("=", Math.max(0, tracksLength - rightEnd - 1));
                System.out.println(answer);
            }
        }
    }
}