#include #include #include #include using namespace std; char in[10047]; char out[10047]; //string out; int finsky[10047]; void inc(int p); void init() { for ( int i = 0; i < 10007; ++i ) finsky[i] = 0; for ( int i = 1; i < 10007; ++i ) inc(i); } #define lastone(a) (a&(a^(a-1))) void dec(int p) { for ( int i = p; i < 10007; i += lastone(i) ) --finsky[i]; } void inc(int p) { for ( int i = p; i < 10007; i += lastone(i) ) ++finsky[i]; } int get(int n) { int sum = 0; for ( int i = n; i > 0; i -= lastone(i) ) sum += finsky[i]; return sum; } /*int find(int n, int start = 16384) { int sum = 0; for ( int i = start; i > 0; i -= lastone(i) ) { sum += finsky[i]; if ( sum == n ) return i; if ( sum > n ) { sum -= finsky[i]; return find(n-sum+1, i); } } return -1; }*/ int find(int n) { int start = 1; int end = 10007; while ( end - start > 2 ) { int mid = ( end + start ) / 2; int g = get(mid); if ( g > n ) end = mid; else if ( g < n ) start = mid; // else // return mid; else { while ( get(mid-1) == get(mid) ) --mid; return mid; } } int i; for ( i = end; i >= start; --i ) if ( get(i) == n ) break; if ( n != get(i) ) return -1; while ( get(i-1) == get(i) ) --i; return i; /* if ( get(start) == n ) return start; if ( get(start+1) == n ) return start+1; if ( get(start+2) == n ) return start+2; if ( get(start+3) == n ) return start+3; return -1;*/ } int main() { init(); /* for ( int i = 1; i < 10; ++i ) printf("%d %d\n", finsky[i], get(i)); for ( int i = 1; i < 10; ++i ) printf("%d\n", find(i)); // dec(1); // dec(2); dec(3); dec(7); for ( int i = 1; i < 10; ++i ) printf("%d %d\n", finsky[i], get(i)); return 0;*/ int n; while ( 1 ) { scanf("%d", &n); if ( ! n ) return 0; int c; int p = 0; getchar(); while ( ( c = getchar() ) ) { if ( c == '\n' ) break; if ( c < 33 ) continue; c = toupper(c); in[p++] = c; } in[p] = 0; // printf("%s\n", in); int sum = 0; while ( sum < p ) { for ( int i = 0; i < p-sum; i += n-1 ) { int poz = find(i+1); dec(poz); --poz; out[poz] = in[sum]; // printf("%d %d %d %c\n", poz, sum, i, in[sum]); ++sum; } } out[p] = 0; printf("%s\n", out); } return 0; }