https://practice.geeksforgeeks.org/problems/minimum-swaps/1