G is a directed graph.
There may be some cycles in G.
There may be some seperate sub-graph in G
Now, make k(>=1) steps
in step i, select si vertices.
if si == 0, enter the next step
if si >= 0, these vertcies should construct a simple path(has no cycle), delete these vertices from G, enter the next step.