#include #include #include #include #include #include #include #include #include #include #include using namespace std; int get( const char *s, int len, int n, int *p ) { int norg = n; // for( int i = 0; i < len; i ++ ) // printf( "%c", s[i] ); // printf( "\n" ); for( int i = 0; i < len; ){ if( isdigit( s[i] ) ){ int t = 0; do{ t = t * 10 + s[i] - '0'; i ++; }while( i < len && isdigit(s[i]) ); if( s[i] != '(' ){ n -= t; if( n < 0 ){ *p = s[i]; return 0; } i ++; } else{ // N(seq) i ++; int B0 = i; int level = 1; while( level > 0 ){ if( s[i] == '(' ) level ++; if( s[i] == ')' ) level --; i ++; } int B1 = i - 1; int X = get( s + B0, B1 - B0, n, p ); if( *p >= 0 ) return 0; else{ if( n < X * t ){ get( s + B0, B1 - B0, n % X, p ); if( *p < 0 ){ fprintf( stderr, "ERROR\n" ); } return 0; } else{ n -= X * t; } } } } else{ n --; if( n < 0 ){ *p = s[i]; return 0; } i ++; } } *p = -1; return norg - n; } int main(void) { while(1){ char str[1024]; int n; scanf( "%s%d", str, &n ); if( n == 0 && strcmp( str, "0" ) == 0 ) break; int p; get( str, strlen(str), n, &p ); if( p >= 0 ) printf( "%c\n", p ); else printf( "0\n" ); } return 0; }