Strange third argument in shell function

In one of my shell function I found the following

 set_default_values () {
         prog=$1
        PROC_DT=$2
        RESET_ALL="${3-N}"
        #echo "Processing date as passed = [$2], Program name = [$1]"
......
  
 

I understand the first and second arguments, but don't understand what is

 RESET_ALL="${3-N}"
 

I know that I send only two arguments, why do I need third? If I don't send it. And why is it strange N letter? The code is very old and I am converting it to Perl now

Thanks for contribution

It becomes N whenever its empty, so by not giving a third argument, you are setting RESET_ALL to N.