@NotNull
  @Contract(pure = true)
  public <T> T selectNotNull(@NotNull List<T> list) {
    assert list.size() == 3;
    return list.get(myIndex);
  }
@NotNull
  @Contract(pure = true)
  public <T> T selectNotNull(@NotNull List<T> list)