Listing 1 What does this program print?

#include <stdio.h>

char *ap[] = {
   "INTEGER",
   "PROPORTION",
   "DEBUGGER",
   "PORTABLE",
   "TOWER!"
   };

char **app[] = { ap + 4, ap + 3, ap + 2, ap + 1, ap };
char ***ppp = app;
char ****pppp = &ppp;

void main()
   {
   printf("%.*s",  2, *--**pppp);
   printf("%.*s",  3, *(++*pppp[0] - 4));
   printf("%s "   ,   ++*--*++pppp[0] + 5);
   printf("%.*s",  2, *++pppp[0] [3] + 3);
   printf("%s\n",     (*pppp + 2)[-2][2] + 2);
   }

/* End of File */