#include <stdio.h>
#include <stdint.h>
#include <inttypes.h>

size_t read_size(void) {
    size_t n;
    scanf("%zu", &n);
    return n;
}

int64_t read_int64(void) {
    int64_t n;
    scanf("%" SCNd64, &n);
    return n;
}

int64_t** marray_read(size_t* rows, size_t* sizes[]) {
    size_t n = read_size();
    *rows = n;

    *sizes = malloc(n * sizeof(size_t));
    int64_t** array = malloc(n * sizeof(int64_t*));

    for (size_t i = 0; i < n; i++) {
        size_t m = read_size();
        (*sizes)[i] = m;
        array[i] = malloc(m * sizeof(int64_t));
        for (size_t j = 0; j < m; j++) {
            array[i][j] = read_int64();
        }
    }
    for (size_t i = 0; i < n; i++) {
        printf("%zu ", (*sizes)[i]);
    }
    printf("\n");
    return array;
}

void perform(void) {
    size_t rows;
    size_t* sizes;
    int64_t** marray = marray_read(&rows, &sizes);
    for (size_t i = 0; i < rows; i++) {
        printf("\n%zu:", sizes[i]);
        for (size_t j = 0; j < sizes[i]; j++) {
            printf(" %" SCNd64, marray[i][j]);
        }
    }
    
    free(sizes);

    for (size_t i = 0; i < rows; i++) {
    	free(marray[i]);
    }

	free(marray);
}

int main(void) {
	perform();
	return 0;
}
