there ATM machine store banknote 5 denomination 20 50 100 200 500 dollar initially ATM the user use machine deposit withdraw moneywhen withdraw machine prioritize banknote large valuesfor example want withdraw 300 2 50 banknote 1 100 banknote 1 200 banknote machine use 100 200 banknoteshowever try withdraw 600 3 200 banknote 1 500 banknote withdraw request reject machine try use 500 banknote unable use banknote complete remain 100 note machine allow use 200 banknote instead 500 banknoteimplement ATM classATM Initializes ATM objectvoid depositint banknotescount deposit new banknote order 20 50 100 200 500int withdrawint return array length 5 number banknote hand user order 20 50 100 200 500 update number banknote ATM withdraw return 1 possible withdraw banknote case Example 1inputatm deposit withdraw deposit withdraw withdraw 00121 600 01011 600 550Outputnull null 00101 null 1 01001explanationatm atm new atmatmdeposit00121 deposit 1 100 banknote 2 200 banknote 1 500 banknoteatmwithdraw600 return 00101 the machine use 1 100 banknote 1 500 banknote the banknote leave machine 00020atmdeposit01011 deposit 1 50 200 500 banknote the banknote machine 01031atmwithdraw600 return 1 the machine try use 500 banknote unable complete remain 100 withdraw request reject since request reject number banknote machine modifiedatmwithdraw550 return 01001 the machine use 1 50 banknote 1 500 banknote ConstraintsbanknotesCountlength 50 banknotesCounti 1091 109at 5000 call total withdraw depositAt function withdraw deposit