

class IntPair {
  private int left, right;
  public IntPair(int left, int right) {
    this.left = left;
    this.right = right;
  }
  public int getLeft() {
    return this.left;
  }
  public int getRight() {
    return this.right;
  }
}

class DoublePair {
  private double left, right;
  public DoublePair(int left, int right) {
    this.left = left;
    this.right = right;
  }
  public double getLeft() {
    return this.left;
  }
  public double getRight() {
    return this.right;
  }
}

class Pair<L, R> {
  private L left;
  private R right;
  public Pair(L left, R right) {
    this.left = left;
    this.right = right;
  }
  public L getLeft() {
    return this.left;
  }
  public R getRight() {
    return this.right;
  }
}

public class Lists {
  public static void main(String[] args) {
    IntPair i = new IntPair(1, 2);
    Pair<Integer, Integer> i2 = new Pair<Integer, Integer>(1, 2);

    Pair<Integer, String>[] pairs = new Pair<Integer, String>[5];

    /*

    Pair<Double, Double> p = new Pair<Double, Double>(3.1, 2.2);
    Pair<Integer, Double> p2 = new Pair<Integer, Double>(3, 2.2);
    Pair<String, Integer> p3 = new Pair<String, Integer>("a", 5);
    Pair<Pair<String, Integer>, Double> p4 =
      new Pair<Pair<String, Integer>, Double>(
        new Pair<String, Integer>("a", 5),
        5.6
      )

    */

  }
}
