Say I'm given a subroutine that can sort at most $m$ elements each time it get called, which is treated as a black box. Now, I'm further given a set of $N$ elements. The task is to find the smallest $k$ elements in the list.
What is the minimum number of times calling the subroutine needed, at least asymptotically? How would an efficient algorithm look like?