input: Write a function to recommend similar songs given a song_id using k-nearest neighbors.
  assert recommend_songs(df, model_knn, 0) == ['Song1', 'Song2', 'Song3', 'Song4']
  assert recommend_songs(df, model_knn, 10) == ['Song11', 'Song12', 'Song13', 'Song14']
  assert recommend_songs(df, model_knn, 20) == ['Song21', 'Song22', 'Song23', 'Song24']
output: def recommend_songs(df, model_knn, song_id):
      distances, indices = model_knn.kneighbors(df.iloc[song_id, :].values.reshape(1, -1), n_neighbors=5)
      similar_songs = []
      for i in range(1, len(distances.flatten())):
          similar_songs.append(df.index[indices.flatten()[i]])
      return similar_songs