private boolean greater(int[] a, int i, int[] b, int j) {
        while (i < a.length && j < b.length && a[i] == b[j]) {
            ++i; ++j;
        }
        if (i == a.length) return false;
        if (j == b.length) return true;
        return a[i] > b[j];
    }