The problem is, NF
at BEGIN
section is not the number of tokens on the first line. The following works:
awk '{if (!f) f = NF; printf($f" "); f=f-1}'
Edit: as per suggestions in the comments, a cleaner and safer way is:
awk '{if (!f) f = NF; printf("%s ", $f); f--}'