/* Problem 3--Rubik Analysis
   This could be handled very easily by recursion.  It also isn't too
   bad iteratively.  You don't get more than 48 of any kind of cube,
   for example, and the pattern is not too hard to observe. */

import java.io.*;
import java.util.*;

public class prob3 {

 public static Scanner in=null;
 public static PrintWriter out=null;
 public static int cs=1;

 public static void main (String[] args) throws Exception {

  in = new Scanner (new File ("prob3.in"));
  out = new PrintWriter ("prob3.out");
  int sz = 0;
  while ((sz=in.nextInt())> 0) {
   out.println ("Case "+(cs++)+":  "+sz+"x"+sz+"x"+sz);
   out.println ("-----");
   Process3("",1,sz);  //Call recursion
   out.println ("-----");
   out.println ("Total:  "+sz*sz*sz);
   out.println ();
  }
  in.close();
  out.close();
 }

 /* Handles three dimensional cubes */
 public static void Process3 (String pref, int m, int sz) {

  if (sz==0) return;
  if (sz==1) {
   out.println ((pref+"-0").substring(1)+":  "+m);
   return;
  }
  out.println ((pref+"-0").substring(1)+":  "+8*m);
  Process1 (pref+"-1",12*m,sz-2);
  Process2 (pref+"-2",6*m,sz-2);
  Process3 (pref+"-3",m,sz-2);
 }

 /* Handles two dimensional squares */
 public static void Process2 (String pref, int m, int sz) {

  if (sz==0) return;
  if (sz==1) {
   out.println ((pref+"-0").substring(1)+":  "+m);
   return;
  }
  out.println ((pref+"-0").substring(1)+":  "+4*m);
  Process1 (pref+"-1",4*m,sz-2);
  Process2 (pref+"-2",m,sz-2);
 }

 /* Handles one dimensional lines */
 public static void Process1 (String pref, int m, int sz) {

  if (sz==0) return;
  if (sz==1) {
   out.println ((pref+"-0").substring(1)+":  "+m);
   return;
  }
  out.println ((pref+"-0").substring(1)+":  "+2*m);
  Process1 (pref+"-1",m,sz-2);
 }
}
