2-opt with K-swap