import java.util.ArrayList; public class Wednesday { public static ArrayList merge(ArrayList a, // a and b ascending ArrayList b) { ArrayList result = new ArrayList(); while (a.size() > 0 || b.size() > 0) { if (a.size() == 0) { result.add( b.get(0) ); b.remove(0); } else if (b.size() == 0) { result.add( a.get(0) ); a.remove(0); } else { if (a.get(0) < b.get(0)) { result.add( a.get(0) ); a.remove(0); } else { result.add( b.get(0) ); b.remove(0); } } } return result; } public static ArrayList sort(ArrayList a) { ArrayList> b = new ArrayList>(); for (Integer number : a) { ArrayList c = new ArrayList(); c.add( number ); b.add( c ); } while (b.size() > 1) { ArrayList d = b.get(0); ArrayList e = b.get(1); b.remove(0); // I just got rid of d (from b) b.remove(0); // I just got rid of e (from b) b.add( Wednesday.merge( d, e ) ); } return b.get(0); } public static void main(String[] args) { ArrayList numbers = new ArrayList(); for (String number : args) { numbers.add( Integer.parseInt( number ) ); } ArrayList sorted = Wednesday.sort( numbers ); System.out.println( sorted ); } }