input: Write a python function to implement a K-Nearest Neighbors algorithm to classify a new point, given the training data and the number of neighbors k.
  assert knn(np.array([[1, 2], [2, 3], [3, 4], [5, 6]]), np.array([1, 2]), 1) == 0
  assert knn(np.array([[1, 2], [2, 3], [3, 4], [5, 6]]), np.array([4, 5]), 2) == 1
  assert knn(np.array([[1, 2], [2, 3], [3, 4], [5, 6]]), np.array([2, 3]), 3) == 0
output: def knn(training_data, new_point, k):
      import numpy as np
      from collections import Counter
  
      distances = np.linalg.norm(training_data - new_point, axis=1)
      nearest_neighbors = np.argsort(distances)[:k]
      majority_vote = Counter(nearest_neighbors).most_common(1)[0][0]
      
      return majority_vote