class program { define halfturn() { turnleft(); turnleft(); } define give(friends) { iterate (friends) { if (nextToABeeper) { pickbeeper(); } else { move(); putbeeper(); halfturn(); move(); halfturn(); } } if (nextToABeeper) { give(friends); } } define countAndGive(friends) { if (nextToABeeper) { pickbeeper(); countAndGive(succ(friends)); } else { move(); halfturn(); give(friends); move(); if (nextToABeeper) { give(friends); } } } program() { move(); move(); turnleft(); move(); turnleft(); countAndGive(0); turnoff(); } }