#include unsigned char o[256]; char *O = (char*)o; int M, X, K, N, a, n, A, x; FILE *f; #define i(w, W, v) if( W ) { w; } else { v; } void J() { a = EOF; i(a = o[X++], X < M || ((M = fread(o, 1, 256, f)) && !(X = 0)), ;) } int P(int p, char *q) { return p < M && *q ? O[p] == *q && P(p + 1, q + 1) : 1; } void Q() { #define j do{J(); if( a == EOF ) return;} while(0); M = X = 0; K = N = 0; j i(K = (o[7] << 8) | o[6]; N = (o[9] << 8) | o[8], P(0, "GIF87a") || P(0, "GIF89a"), i(for(X = 2;;) { for(a = 0; a - 255;) j j i(for(n = 0; n < 3; n++) j j n = a << 8; j n |= a; j A = a << 8; j N = n; K = A | a; return, a > 191 && a < 208 && a - 196, ;) j n = a << 8; j n |= a; for(n -= 2; n > 0; n--) j }, P(0, "\xff\xd8"), i(K = (o[16] << 24) | (o[17] << 16) | (o[18] << 8) | o[19]; N = (o[20] << 24) | (o[21] << 16) | (o[22] << 8) | o[23], P(0, "\x89PNG\r\n\x1a\n"), i(for(X = 2; X < M; X++) i(;, o[X] - 35, for(; X < M && o[X] - 10; X++) o[X] = 32; o[X] = 32) o[255] = 0; i(i(K = N = 0, sscanf(O, "P%d %d %d", &X, &K, &N) - 3, ;), o[1] - 55, i(K = N = 0, sscanf(O, "P7 WIDTH %d HEIGHT %d", &K, &N) - 2, ;)), o[0] == 80 && o[1] > 48 && o[1] < 56, ;)))) } int main(int p, char **q) { i(for(x = 1; x < p; x++) { i(Q(); fclose(f), (f = fopen(q[x], "rb")), ;) printf("%d %d %s\n", K, N, q[x]); }, p > 1, f = stdin; Q(); printf("%d %d\n", K, N)) return 0; }