#include #include #include #include char s[10]; int len; bool space = false; void vypis() { if ( !space ) { space = true; } else printf( " " ); printf( "%s", s ); } void rek( int level ) { if ( level == len ) return; int next = ( s[level] >= '5' ) ? 1 : -1; while ( ( s[level] != '0' ) && ( s[level] != '9' ) ) { s[level] += next; vypis(); } next = -next; for ( int i=0; i<9; i++ ) { rek( level + 1 ); s[level] += next; vypis(); } } int main(int argc, char** argv) { scanf( "%s\n", s ); while ( s[0] != '-' ) { space = false; len = strlen( s ); int c = 1; for ( int i=0; i= '5' ) c += '9' - s[i]; else c += s[i] - '0'; } c--; printf( "%d\n", c ); rek( 0 ); printf( "\n" ); scanf( "%s\n", s ); } return 0; }