-: , (M+1) - ( , , 0) N - (M-1)*K . .
:

x i a M+1 - ( 0 ) ( , x i !).

m i :

, m i m + 1 K, m M N ( , ). , (M+1) -, , . ( , x M , , m i.)
, , , ; ,

- , . , , x i :

, -, x i 0, . , ( , x i 0) , :

, , m i.
, , N - (M-1)*K . , , - .
( ): N - (M-1)*K M M. (M+1) - N - (M-1)*K, M N - (M-1)*K + M, |. x 0 | , x M + 1 | , x i | i i+1. , , , M - [1; N - (M-1)*K + M] , , , Shuffle Fisher-Yates O(N + M log M) ( M ), M*K O(N) . , N , M, , , N.
. @DavidEisenstat , M - ; , .
, , , N ≥ (M-1) * K, 1 ( 0, ).