/*
 * Implementation the Ackermann function.
 * http://en.wikipedia.org/wiki/Ackermann_function
 *
 * Author: Matthias Heizmann
 * Date: 2013-07-13
 *
 */

extern int __VERIFIER_nondet_int(void);

int ackermann(int m, int n) {
    if (m==0) {
        return n+1;
    }
    if (n==0) {
        return ackermann(m-1,1);
    }
    return ackermann(m-1,ackermann(m,n-1));
}


int main() {
    int m = __VERIFIER_nondet_int();
    int n = __VERIFIER_nondet_int();
    int result = ackermann(m,n);
    if (m < 2 || result >= 4) {
        return 0;
    } else {
        ERROR:
        goto ERROR;
    }
}
