import java.util.Deque;

public class BSTMap<K extends Comparable<K>, V> implements Map<K,V> {
  // private classes and fields here

  @Override
  public V get(K key) {
    // requirement: O(height)
    throw new UnsupportedOperationException("you need to implement get(k)");
  }

  @Override
  public boolean containsKey(K key) {
    // requirement: O(height)
    throw new UnsupportedOperationException("you need to implement containsKey(k)");
  }

  @Override
  public void put(K key, V value) {
    // requirement: O(height)
    throw new UnsupportedOperationException("you need to implement put(k,v)");
  }

  @Override
  public int size() {
    // requirement: O(1)
    throw new UnsupportedOperationException("you need to implement size()");
  }

  @Override
  public Deque<K> traverse() {
    // requirement: O(n)
    throw new UnsupportedOperationException("you need to implement traverse()");
  }

  @Override
  public void remove(K key) {
    // requirement: O(height)
    throw new UnsupportedOperationException("implement remove(k) last!");
  }
}