input: Write a Python function to perform K-Fold Cross-Validation on a given dataset and return the train and test indices for each fold.
  assert k_fold_cross_validation(X=np.array([[1, 2], [3, 4], [5, 6], [7, 8], [9, 10], [11, 12]]), y=np.array([1, 2, 3, 4, 5, 6]), n_splits=5) == [([1, 2, 3, 4, 5], [0]), ([0, 2, 3, 4, 5], [1]), ([0, 1, 3, 4, 5], [2]), ([0, 1, 2, 4, 5], [3]), ([0, 1, 2, 3, 5], [4])]
  assert k_fold_cross_validation(X=np.array([[1, 2], [3, 4], [5, 6], [7, 8]]), y=np.array([1, 2, 3, 4]), n_splits=2) == [([2, 3], [0, 1]), ([0, 1], [2, 3])]
output: def k_fold_cross_validation(X, y, n_splits):
      from sklearn.model_selection import KFold
      kf = KFold(n_splits=n_splits)
      indices = []
      for train_index, test_index in kf.split(X):
          indices.append((list(train_index), list(test_index)))
      return indices