private <T> T[] shuffle(T[] arr) {
		T tmp;
		if(arr.length == 2) {
			if(r.nextBoolean()){
				tmp = arr[0];
				arr[0] = arr[1];
				arr[1] = tmp;
			}
			return arr;
		}
		if(arr.length == 3) {
			int i = r.nextInt(3);
			tmp = arr[0];
			arr[0] = arr[i];
			arr[i] = tmp;
			if(r.nextBoolean()){
				tmp = arr[1];
				arr[1] = arr[2];
				arr[2] = tmp;
			}
			return arr;
		}
		if(arr.length <= 1) return arr;
		return null;
	}