import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	}
}
 import java.util.Scanner; Scanner java.util public class Main{

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	}
} Main public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	} main {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String shuffled_card = ""; shuffled_card "" int m = 0; m 0 int h = 0; h 0 int MAX_DATA = 10; MAX_DATA 10 int NUMBER_OF_DATA = 0; NUMBER_OF_DATA 0 String n = ""; n "" boolean judge_m = true; judge_m true boolean judge_n = true; judge_n true String[] output = new String[MAX_DATA]; output new String[MAX_DATA] MAX_DATA if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		} judge_m == true && judge_n == true judge_m == true judge_m true judge_n == true judge_n true {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		} for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			} int k = 0; int k = 0; k 0 k < NUMBER_OF_DATA k NUMBER_OF_DATA k++ k++ k {
				System.out.println(output[k]);

			} {
				System.out.println(output[k]);

			} System.out.println(output[k]) System.out.println System.out System System.out output[k] output k String[] args args public class Main{

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	}
} public class Main{

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	}
} Main
import java.util.Scanner;

public class Main{

	public static void main(String[] args) {
		// TODO 自動生成されたメソッド・スタブ

		Scanner sc = new Scanner(System.in);
		String shuffled_card = ""; // シャッフル後のカードの状態
		int m = 0; // シャッフル回数
		int h = 0; // 下からとる枚数
		int MAX_DATA = 10;
		int NUMBER_OF_DATA = 0;
		String n = ""; // 入力されたカードの山
		boolean judge_m = true; // シャッフル回数が条件を満たしているかを示す変数
		boolean judge_n = true; // 入力されたn枚のカードが条件を満たしているかを示す変数
		String[] output = new String[MAX_DATA];

		out: for (int i = 0; i < MAX_DATA; i++) {

			// 始:カードの入力とチェック
			n = sc.next();
			shuffled_card = n;
			if (n.equals("-")) {
				break out;
			}
			NUMBER_OF_DATA++;
			if (n.length() < 1 || n.length() > 200) {
				judge_n = false;
				break out;
			}
			// 終:カードの入力とチェック

			// 始:シャッフル回数mの入力とチェック
			m = sc.nextInt();

			if (m < 1 && m > 100) {
				judge_m = false;
				break out;

			}
			// 終:シャッフル回数mの入力とチェック

			for (int j = 0; j < m; j++) {
				h = sc.nextInt();
				shuffled_card = shuffled_card.substring(h,
						shuffled_card.length())
						+ shuffled_card.substring(0, h);

			}
			output[i] = shuffled_card;
		}// out:for文ここまで

		if (judge_m == true && judge_n == true) {
			for (int k = 0; k < NUMBER_OF_DATA; k++) {
				System.out.println(output[k]);

			}
		}
	}
}

