/************************************************
Algorithmen und Problemloesungen mit C++,
http://www.algorithmen-und-problemloesungen.de
Copyright @2007 by Doina Logofatu
************************************************/

#include <fstream>

unsigned long long ack(short n, short m){
  if(0==n) return m+1;
  else if(0==m) return ack(n-1, 1);
  else return ack(n - 1, ack(n, m - 1));
}

int main(){
  short m, n;
  std::ifstream in("ack.in");
  std::ofstream out("ack.out");
  while(in && !in.eof() && in>>n>>m){
    out << "Ack(" << n << ", " << m 
      << ")= "  << ack(n, m) << std::endl;
  }
  return 0;
}


