public static void main(String[] args) {
        ArrayList<Integer> A = new ArrayList<Integer>();
        Random r = new Random();
        if (args.length == 0) {
            int count = r.nextInt(10000) + 1;
            for(int i = 0; i < count; i++)
                A.add(r.nextInt(Integer.MAX_VALUE));
        } else {
            int count = Integer.parseInt(args[0]);
            for(int i = 0; i < count; i++)
                A.add(4);
        }
        String ret = encode(A);
        System.out.println(ret);

        ArrayList<Integer> res = decode(ret);
        assert(A.size() == res.size());
        for (int i = 0; i < A.size(); ++i) {
            assert(res.get(i).equals(A.get(i)));
        }
    }