Program

 

Compact version

Expanded version