public class BigNatLibrary {
    static int max = 10;//for testing purposes this number is small

    static boolean areDigits(char[] cs){
        //replace stub code
        return true;
    }
    public static boolean areEqual(int[] a, int[] b) {
        //replace stub code
        return true;
    }
    public static boolean isGreater(int[] a, int[] b) {
        //replace stub code
        return true;
    }
    public static int[] init(){
        int[] result = new int[max];
        for (int i = 0; i < max; i++)
            result[i] = 0;
        return result;
    }
    public static int[] read() {
	//the 0th element is the length and the 1st element is the most significant digit
        int[] result = init();
        String s = IOUtil.readString();
        char[] cs = s.toCharArray();
        assert (cs.length < max) : "input number too large";
        assert (areDigits(cs)) : "non-numeric character input";
        result[0] = s.length();
        for (int i = 1; i <= s.length(); i++)
            result[i] = cs[i - 1] - '0';
        return result;
    }
    public static void print(int[] a)
    {assert (a[0] > 0) : "must be at least one digit";
        for (int i = 1; i <= a[0]; i++)
            System.out.print(a[i]);
    }
    public static int[] reverse(int[] a) {
        //replace stub code
        return init();
    }
    public static int[] intToBigNat(int n){
        //replace stub code
        return init();
    }
    public static int[] add(int[] a, int[] b){
        //replace stub code
        return init();
    }
    public static int[] sub(int[] a, int[] b){
        //replace stub code
        return init();
    }
    public static int[] mul(int[] a, int[] b){
        //replace stub code
        return init();
    }
    public static int[] fib(int[] n){
        //replace stub code
        return init();
    }
}

