#include <stdio.h> #include <string.h> int A[500000] = {0}; int find(int x, int n) { int i; for (i = 1; i <= n; ++i) if (A[i] == x) return i; } void A_low_high(int low,int high) { int temp = A[low]; memmove(A+low,A+low+1,(high-low-1)*sizeof(int)); A[high-1] = temp; } void A_high_low(int high,int low) { int temp = A[high]; memmove(A+low+1,A+low,(high-low)*sizeof(int)); A[low] = temp; } void B_low_high(int low,int high) { int temp = A[low]; memmove(A+low,A+low+1,(high-low)*sizeof(int)); A[high] = temp; } void B_high_low(int high,int low) { int temp = A[high]; memmove(A+low+2,A+low+1,(high-low-1)*sizeof(int)); A[low+1] = temp; } int main(void) { int n, m; char type[2] = {0}; int X,Y; scanf("%d %d",&n,&m); for (int i = 1; i <= n; ++i) A[i] = i; for (int i = 0; i < m; ++i) { scanf("%s%d%d",type,&X,&Y); int p = find(X,n); int q = find(Y,n); if (type[0] == 'A') { if (q > p) A_low_high(p,q); else A_high_low(p,q); } else { if (q > p) B_low_high(p,q); else B_high_low(p,q); } } for (int i = 1; i <= n; ++i) printf("%d ",A[i]); putchar('/n'); return 0; }