#include #include char *O; int *n, u, k, o, X, x, p, d; int main() { while( (o = getchar()) != EOF ) { if( !x ) { if( d + 2 > p && !(n = (int*)realloc(n, sizeof(int) * (p = p ? p * 2 : 64))) ) { return -1; } n[d++] = k; } x = 0; if( o - 10 ) { if( k >= u && !(O = (char*)realloc(O, u = u ? u * 2 : 64)) ) { return -1; } O[k++] = o; x = k - n[d - 1]; if( x > X ) X = x; } } n[d] = k; for(o = 0; o < X; putchar(10), o++) for(u = d; u-- > 0;) putchar(o >= n[u + 1] - n[u] ? 32 : O[n[u] + o]); return 0; }