format is your first argument, args your second one. About your last argument printf doesn't care.
Also, your second argument, "13%1$s", is taken as a String. So "%1$s" is here not a placeholder
What is done in the end? printf checks the first argument; prints 12, then gets the second argument and prints
13%1$s. Altogether: 1213%1$s