import java.util.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        //変数定義
        int h,m;
        String str,str1,tmp;
        StringBuffer sb;

        while(true){
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        }
    }
} import java.util.*; util.* java class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        //変数定義
        int h,m;
        String str,str1,tmp;
        StringBuffer sb;

        while(true){
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        }
    }
} Main public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        //変数定義
        int h,m;
        String str,str1,tmp;
        StringBuffer sb;

        while(true){
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        }
    } main {
        Scanner sc = new Scanner(System.in);

        //変数定義
        int h,m;
        String str,str1,tmp;
        StringBuffer sb;

        while(true){
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        }
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int h h m; m String str str str1 str1 tmp; tmp StringBuffer sb; sb while(true){
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        } true {
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        } str = sc.nextLine() str sc.nextLine() sc.nextLine sc if(str.equals("-")) break; str.equals("-") str.equals str "-" break; str1 = sc.nextLine() str1 sc.nextLine() sc.nextLine sc m = Integer.parseInt(str1) m Integer.parseInt(str1) Integer.parseInt Integer str1 sb = new StringBuffer(str) sb new StringBuffer(str) for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            } {
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            } str1 = sc.nextLine() str1 sc.nextLine() sc.nextLine sc h = Integer.parseInt(str1) h Integer.parseInt(str1) Integer.parseInt Integer str1 tmp = sb.substring(0,h) tmp sb.substring(0,h) sb.substring sb 0 h sb.append(tmp) sb.append sb tmp sb.delete(0,h) sb.delete sb 0 h System.out.println(sb) System.out.println System.out System System.out sb String[] args args
import java.util.*;

class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);

        //変数定義
        int h,m;
        String str,str1,tmp;
        StringBuffer sb;

        while(true){
            //カードの山文字列受取
            str = sc.nextLine();

            //終了条件定義
            if(str.equals("-")) break;
            
            //シャッフル回数受取
            str1 = sc.nextLine();
            m = Integer.parseInt(str1);

            //Stringクラス→StringBufferクラス
            sb = new StringBuffer(str);

            for(int i = 0;i < m;i++){
                //h受取
                str1 = sc.nextLine();
                h = Integer.parseInt(str1);
                //文字列分割
                tmp = sb.substring(0,h);
                //末尾に文字列追加
                sb.append(tmp);
                //頭の文字列削除
                sb.delete(0,h);
            }
            System.out.println(sb);
        }
    }
}
