@Override
 public int compareTo(ComplexNumber<? extends Number, ? extends Number> o) {
   if (this.modul() < o.modul()) {
     return -1;
   } else if (this.modul() > o.modul()) {
     return 1;
   } else return 0;
 }
 public static void main(String[] args) {
   Scanner jin = new Scanner(System.in);
   int k = jin.nextInt();
   if (k == 0) { // test simple functions int
     int r = jin.nextInt();
     int i = jin.nextInt();
     ComplexNumber<Integer, Integer> c = new ComplexNumber<Integer, Integer>(r, i);
     System.out.println(c);
     System.out.println(c.getR());
     System.out.println(c.getI());
     System.out.println(c.modul());
   }
   if (k == 1) { // test simple functions float
     float r = jin.nextFloat();
     float i = jin.nextFloat();
     ComplexNumber<Float, Float> c = new ComplexNumber<Float, Float>(r, i);
     System.out.println(c);
     System.out.println(c.getR());
     System.out.println(c.getI());
     System.out.println(c.modul());
   }
   if (k == 2) { // compareTo int
     LinkedList<ComplexNumber<Integer, Integer>> complex =
         new LinkedList<ComplexNumber<Integer, Integer>>();
     while (jin.hasNextInt()) {
       int r = jin.nextInt();
       int i = jin.nextInt();
       complex.add(new ComplexNumber<Integer, Integer>(r, i));
     }
     System.out.println(complex);
     Collections.sort(complex);
     System.out.println(complex);
   }
   if (k == 3) { // compareTo double
     LinkedList<ComplexNumber<Double, Double>> complex =
         new LinkedList<ComplexNumber<Double, Double>>();
     while (jin.hasNextDouble()) {
       double r = jin.nextDouble();
       double i = jin.nextDouble();
       complex.add(new ComplexNumber<Double, Double>(r, i));
     }
     System.out.println(complex);
     Collections.sort(complex);
     System.out.println(complex);
   }
   if (k == 4) { // compareTo mixed
     LinkedList<ComplexNumber<Double, Integer>> complex =
         new LinkedList<ComplexNumber<Double, Integer>>();
     while (jin.hasNextDouble()) {
       double r = jin.nextDouble();
       int i = jin.nextInt();
       complex.add(new ComplexNumber<Double, Integer>(r, i));
     }
     System.out.println(complex);
     Collections.sort(complex);
     System.out.println(complex);
   }
 }