多倍長計算させて、それでスタックが足りなくなってるの?
それとも、普通にInt32なりInt64なりを使っていて、再帰が
深くなりすぎてスタックが足りなくなってるの?

後者だとしたら、どうせ計算可能な部分はめちゃめちゃ限られているので、
アッカーマン関数の値を計算していく順序を工夫すべきだと思う。

http://www.google.co.jp/search?q=アッカーマン関数&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ja:official&client=firefox-a
これ見ると分かるけど、m=3以降に関しては、頑張っても報われないよ?