problem with printf in shell script

i have written small script as follows:

name="hi hello"
printf "%-20s" $name
 

This gives me strange output. -20s format is applied on both word of string. i.e it displays both word hi and hello in space of 20 length.
I want to display entire string "hi hello" in length of 20 space.

plz help me.
thanks

name="hi hello"
printf "%-20s" "$name"

thanks. it works.