q;m;x,y;f(p,n,k)char*p;{p[k=strcspn(p,".:")]&&f(p+k+1,k?n+4:m);for(x=q?!printf("%.*s.",k,p):k?4:m-n;x-->0;m--)printf("%c.",k?p[--k]:48);}main(_,s){for(;gets(s);puts(q?"in-addr.arpa":"ip6.arpa"))q=index(s,46),m=32,f(s,0);}
Note that non-ascii characters in the above source code will be escaped (such as \x9f).