def solve(processes, x):
processes.sort(reverse=True)
sum_of_freed_memory = 0
for i in range(len(processes)):
sum_of_freed_memory += processes[i]
if sum_of_freed_memory >= x:
return (i+1)
return -1 # to not crash if/when total memory is smaller than x
print solve([2, 1, 3, 4, 5], 9)
ZGVmIHNvbHZlKHByb2Nlc3NlcywgeCk6CiAgICBwcm9jZXNzZXMuc29ydChyZXZlcnNlPVRydWUpCiAgICBzdW1fb2ZfZnJlZWRfbWVtb3J5ID0gMAogICAgZm9yIGkgaW4gcmFuZ2UobGVuKHByb2Nlc3NlcykpOgogICAgICAgIHN1bV9vZl9mcmVlZF9tZW1vcnkgKz0gcHJvY2Vzc2VzW2ldCiAgICAgICAgaWYgc3VtX29mX2ZyZWVkX21lbW9yeSA+PSB4OgogICAgICAgICAgICByZXR1cm4gKGkrMSkKICAgIHJldHVybiAtMSAjIHRvIG5vdCBjcmFzaCBpZi93aGVuIHRvdGFsIG1lbW9yeSBpcyBzbWFsbGVyIHRoYW4geAoKcHJpbnQgc29sdmUoWzIsIDEsIDMsIDQsIDVdLCA5KQ==