#include <stdio.h>
#include <stdlib.h>
 
#define BSIZE 6
 
/* int bills[] = { 2, 5, 10, 20, 50, 100 }; */
int bills[] = {1, 5, 10, 25, 50, 100};
int nbills[BSIZE];
 
int N;
 
void print()  {
    int i, j;
    for(i = 0; i < BSIZE; i++) 
        for(j = 0; j < nbills[i]; j++) 
            printf("%d ", bills[i]);
 
    printf("\n");
}
 
void change(int i, int sum) {
    int j, next;
 
    if( i < BSIZE ) {
        for( j = 0; j <= N/bills[i]; j++ ) {
            nbills[i] = j ;
            next = sum + j*bills[i];
            if(next > N) 
                break;
            change(i + 1, next);
        }
    } else {
        if( sum == N ) {
            print();
        }
    }
}
 
 
int main(int argc, char **argv) {
 
    if(argc != 2) {
        fprintf(stderr, "Usage: %s <sum>\n", argv[0]);
        exit(1);
    } 
 
    N = atoi(argv[1]);
 
    change(0, 0);
}

