Siehe auch plemplem.html.

Achtung: Bei Parametern jenseits von (4, 1) bzw. (3.13) geht das Ding natuerlich baden, weil die Zahlen einfach zu gross werden. Ich hatte zwar ueberlegt, ob ich die Arithmetik auch ueber das Filesystem erledigen koennte (z.B., indem eine Zahl n als Verzeichnis mit n files dargestellt wird), aber das war mir dann doch etwas zu albern.

Ausserdem macht die -- natuerlich voellig bekloppte -- Stackimplementierung das ganze derart langsam, dass das Script fuer die Parameter 4 und 1 nach 24 Stunden noch nicht fertig war.

Aber sowas wie

	./gaga.sh 3 3
funktioniert ;-)
#!/bin/sh

[ $# = 2 ] || exit 1

n=$1
m=$2

TMP=/tmp/.gaga.$$
trap "rm -rf $TMP" 0 1 2 3 15
mkdir $TMP || exit 1

u() {
	mkdir $TMP/.n
	:> $TMP/.n/$1
	[ ! -d $TMP/.s ] || mv $TMP/.s $TMP/.n
	mv $TMP/.n $TMP/.s
}

o() {
	ls $TMP/.s 2> /dev/null || return 0
	mv $TMP/.s $TMP/.o
	[ ! -d $TMP/.o/.s ] || mv $TMP/.o/.s $TMP/.s
	rm -r $TMP/.o
}

while true; do
	while [ $n -gt 0 ]; do
		if [ $m -gt 0 ]; then
			let m--
			u $n
			continue 2
		else
			m=1
			let n--
		fi
	done
	_n=$(o)
	if [ -z "$_n" ]; then
		echo $((m + 1))
		break
	else
		n=$_n
		let m++
		let n--
		continue
	fi
done