// T1 http://acm.swust.edu.cn/oj/problem/860/
//關於T1的分析
//這道題用鏈表顯得大材小用了,因為本身就是小數目操作
#include <stdio.h>
#include <string.h>
//char str[105], cmd[6], ch[6];
//之所以 cmd 用數組是因為 "END" 的接收需要,而且 %c 的輸入格式會接收 '\n'
//之所以 ch 用數組是因為 %c 的輸入格式會接收 '\n'
//3或者6或者1都是可以的
char str[105], cmd[3], ch[1];
int main()
{
int i, j, k, l;
//考慮到題意是多組操作
while(scanf("%s", str) == 1)
{
while(scanf("%s", cmd) == 1 && strcmp(cmd, "END") != 0)
{
scanf("%s", ch);
l = strlen(str);
if(cmd[0] == 'A') //A操作
{
scanf("%d", &k);
--k;
if(k > l) k = l;
//////////////////////////////////////////////////////////////////////////
//這是一段不錯的代碼,有著不錯的思想
//很適合小數目操作,但對於大數目,就不好了
//前面的後移, 騰出要插入元素的位置
// i 是最後一個元素下標
for(i = l - 1; i >= k; --i)
str[i+1] = str[i];
//////////////////////////////////////////////////////////////////////////
str[k] = ch[0];
str[++l] = '\0';//結束標識需要加上
}else
{ //B操作
//////////////////////////////////////////////////////////////////////////
//這是以一段優秀的代碼,有著優秀的思想
//很適合小數目操作,但對於大數目,就不好了
//很優秀的處理了元素的查找並刪除並移位
for(i = j = 0; i < l; ++i)
{
if(str[i] != ch[0])
str[j++] = str[i];
}
str[j] = '\0';
//////////////////////////////////////////////////////////////////////////
}
}
puts(str);
}
return 0;
}