#Java 7, 145 bytes Boolean c(int[][]a){int l=a.length;if(l<1)return null;for(int x=1,p=a[0].length;x<l;x++){if(p!=a[x].length)return 0>1;p=a[x].length;}return 1>0;} NOTE: Since Java can't have multiple different return-types, I settled by using a `Boolean`. It now returns `null` when the list is empty. (I suggest not restricting output like this to allow more programming languages to enter the challenge next time..) **Ungolfed / test code:** [Try it here.](https://ideone.com/TAippP) class Main{ static Boolean c(int[][] a){ int l = a.length; if (l < 1){ return null; } for (int x = 1, p = a[0].length; x < l; x++){ if (p != a[x].length){ return 0 > 1; // false } p = a[x].length; } return 1 > 0; // true } public static void main(String[] a) { System.out.println(c(new int[0][0])); System.out.println(c(new int[][]{ new int[]{1}, new int[]{1}, new int[]{2} })); System.out.println(c(new int[][]{ new int[]{1} })); System.out.println(c(new int[][]{ new int[]{1,2,3,4} })); System.out.println(c(new int[][]{ new int[]{1,2,3,4, }, new int[]{2}, new int[]{12,314123} })); System.out.println(c(new int[][]{ new int[]{1,2,3,4}, new int[]{1} })); } } **Output:** null true true true false false