Is my implementation correct? I'm assuming it's not because I keep getting zero returned... Where am I going wrong?

Code://implementation of the recursive ackermann function int ack(int m, int n) { if (m == 0){ return n+1; } else if(m > 0){ ack(m-1, 1); } else if((m > 0) && (n > 0)){ ack(m-1, ack(m, n-1)); } }//end ack