-bash-4.1$ ls -ld Fourteen.java
-rw-r--r-- 1 dgerman faculty 996 Feb 20 18:15 Fourteen.java
-bash-4.1$ javac Fourteen.java
-bash-4.1$ java Fourteen
[]
-bash-4.1$ java Fourteen 3 2 4 1 5 4 2 7 -2
Picked up _JAVA_OPTIONS: -Xms512m -Xmx512m
[[3], [2], [4], [1], [5], [4], [2], [7], [-2]]
[[2, 3], [4], [1], [5], [4], [2], [7], [-2]]
[[2, 3], [1, 4], [5], [4], [2], [7], [-2]]
[[2, 3], [1, 4], [4, 5], [2], [7], [-2]]
[[2, 3], [1, 4], [4, 5], [2, 7], [-2]]
[[1, 2, 3, 4], [4, 5], [2, 7], [-2]]
[[1, 2, 3, 4], [2, 4, 5, 7], [-2]]
[[1, 2, 2, 3, 4, 4, 5, 7], [-2]]
[[-2, 1, 2, 2, 3, 4, 4, 5, 7]]
-bash-4.1$ java Fourteen 9 8 7 6 5 4 3 2 1 0 -1
[[9], [8], [7], [6], [5], [4], [3], [2], [1], [0], [-1]]
[[8, 9], [7], [6], [5], [4], [3], [2], [1], [0], [-1]]
[[8, 9], [6, 7], [5], [4], [3], [2], [1], [0], [-1]]
[[8, 9], [6, 7], [4, 5], [3], [2], [1], [0], [-1]]
[[8, 9], [6, 7], [4, 5], [2, 3], [1], [0], [-1]]
[[8, 9], [6, 7], [4, 5], [2, 3], [0, 1], [-1]]
[[6, 7, 8, 9], [4, 5], [2, 3], [0, 1], [-1]]
[[6, 7, 8, 9], [2, 3, 4, 5], [0, 1], [-1]]
[[6, 7, 8, 9], [2, 3, 4, 5], [-1, 0, 1]]
[[2, 3, 4, 5, 6, 7, 8, 9], [-1, 0, 1]]
[[-1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9]]
-bash-4.1$ cat Fourteen.java
// try java Fourteen 5 4 6 3 7 2 8 1 9 0
import java.util.*;

class Fourteen {
   public static void main(String[] args) {
     ArrayList<ArrayList<Integer>> a = new ArrayList<ArrayList<Integer>>();
     for (String arg : args) {
       ArrayList<Integer> row = new ArrayList<Integer>();
       row.add(Integer.parseInt(arg));
       a.add(row);
     }
     System.out.println( a );
     while (a.size() > 1) {
       for (int i = 0; i < a.size() - 1; i = i + 1) {
         a.add(i, merge(a.remove(i), a.remove(i)));
         System.out.println( a );
       }
     }
   }
   static ArrayList<Integer> merge(ArrayList<Integer> a, ArrayList<Integer> b) {
     ArrayList<Integer> result = new ArrayList<Integer>(); 
     // this is where your code goes
     // remember: a and b are already sorted ascending 
     // the returned array list contains all elements of a and b (in ascending order) 
     // merge needs to carefully select from the two lists the smallest element
     // the list merge picked from shrinks and the result increases by that element 
    return result; 
   }
}

-bash-4.1$