#include <iostream>
using namespace std;

int f1(int m, int n) {
	if (m == 0) 
		return n+1;
	else if (m > 0 && n == 0)
      		return f1(m-1, 1);
	else if (m > 0 && n > 0)
		return f1(m-1, f1(m, n-1));
	else
		return -1;	
}

int f2(int n) {
	if (n < 1) return -1;
	while (n != 1) {
		if (n%2 == 0) n=n/2;
		else n=3*n+1;
	}
	return n;
}

int f3(int n) {	
	while (n != 0) {
		n = n%7;
		n = n-1;
	}
	return n;
}

int main() {

	f1(3,3);
	// f1(4,4);
	cout << "f1() ist beendet." << endl;


	f2(19);
	// f2(211);
	cout << "f2() ist beendet." << endl;

	f3(10);
	// f3(-10);
	cout << "f3() ist beendet." << endl;

	return 0;
}