#include <iostream.h>

const MAX = 101;
bool grid[MAX][MAX];
int mn[MAX],mx[MAX];

void main (void) {
 int k;
 for (k=1;k<100;k++) {
  int lcv,lcv2,lcv3,lcv4;
  for (lcv=0;lcv<MAX;lcv++) for (lcv2=0;lcv2<MAX;lcv2++) 
    grid[lcv][lcv2]=false;

  grid[0][0]=true;
  grid[1][1]=true;
  grid[5][1]=true;
  grid[10][1]=true;
  grid[25][1]=true;
  grid[50][1]=true;
  grid[100][1]=true;
  grid[k][1]=true;
 
  for (lcv=1;lcv<101;lcv++) {
    for (lcv2=1;lcv2<MAX;lcv2++) 
    for (lcv3=1;lcv3<(lcv+3)/2;lcv3++) for (lcv4=1;lcv4<lcv2+1;lcv4++) 
    if (grid[lcv3][lcv4] && grid[lcv-lcv3][lcv2-lcv4])
     grid[lcv][lcv2] = true;
  }
    lcv = 100;

    cout << k << " --> 0-";
    for (lcv2=1;lcv2<MAX;lcv2++)
      if (lcv2<MAX-1 && grid[lcv][lcv2+1]
            && !grid[lcv][lcv2] && grid[lcv][lcv2-1]) {
        cout << lcv2 << ","; lcv2++;
      } else if (!grid[lcv][lcv2] && grid[lcv][lcv2-1])
        cout << lcv2 << "-";
      else if (!grid[lcv][lcv2-1] && grid[lcv][lcv2])
        cout << lcv2-1 << ",";
    cout << "\n";
 }
}
