fun main(args: Array) { val inpt = readLine()!!.split(" ").map { it.toInt() } var remain = inpt.last() val coins = inpt.dropLast(1).toIntArray() println(if(Solve(remain,coins).getAns()) "YES" else "NO") } class Solve(private val amount:Int, private val coins:IntArray) { private val coinType = listOf(500,100,50,10,5,1) fun getAns():Boolean { return getAns(0, amount) } private fun getAns(index:Int, remain:Int):Boolean { if(remain == 0) { return true } if(index > coins.lastIndex) { return false } val cnt = Math.min(remain/coinType[index], coins[index]) return getAns(index+1, remain - cnt*coinType[index]) } }