O(K + logK * n)