import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /* * To change this template, choose Tools | Templates * and open the template in the editor. */ import java.util.ArrayList; import java.util.List; /** * * @author cteam01 */ public class hack { private static boolean prvni = true; private static int cnt = 0; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String line; while ((line = br.readLine()) != null) { prvni = true; cnt = 0; StringBuilder sb = new StringBuilder(); if (line.startsWith("-1")) { break; } List l = new ArrayList(); for (int i = 0; i < line.length(); i++) { l.add(Integer.parseInt(line.charAt(i) + "")); } for (int i = 0; i < l.size(); i++) { int c = l.get(i); if (c <= 4) { for (int j = c - 1; j >= 0; j--) { l.set(i, j); vypis(l, sb); } } else { for (int j = c + 1; j <= 9; j++) { l.set(i, j); vypis(l, sb); } } } projdi(0, l, sb); System.out.println(cnt); System.out.println(sb); } } private static void projdi(int a, List l, StringBuilder sb) { vypis(l, sb); if (a == l.size() - 1) { } else { projdi(a + 1, l, sb); } if (l.get(a) == 0) { for (int i = 1; i <= 9; i++) { l.set(a, i); vypis(l, sb); if (a == l.size() - 1) { } else { projdi(a + 1, l, sb); } } } else { for (int i = 8; i >= 0; i--) { l.set(a, i); vypis(l, sb); if (a == l.size() - 1) { } else { projdi(a + 1, l, sb); } } } } private static void vypis(List l, StringBuilder sb) { if (prvni) { prvni = false; } else { sb.append(' '); } for (Integer integer : l) { sb.append(integer); } cnt++; } }