import java.util.Arrays;
import java.util.Scanner;
//输出n个数的全排列
public class hdu1716 {
static int[] num = new int[10];
static int[] vis = new int[10];
static int n;
static int flag = -1;
static int ci = 0;
static int ci1 = 0;
static int[] vis1 = new int[10000];
public static void dfs1(int step,int[] nn){
if (step== n +1){
int res = 0;
for (int i = 1; i <= n; i++) {
int a = 1;
for (int j = 4; j >i ; j--) {
a = a*10;
}
res += num[i]*a;
}
if (num[1] != 0 && vis1[res]==0){
vis1[res] = 1;
if (num[1] != flag){
flag = num[1];
if (ci!=0){
System.out.println();
ci1 = 0;
}
ci = 1;
if (ci1 == 0){
System.out.print(res);
ci1=1;
}else{
System.out.print(" ");
System.out.print(res);
}
}else{
if (ci1 == 0){
System.out.print(res);
ci1=1;
}else{
System.out.print(" ");
System.out.print(res);
}
}
}
return;
}
for (int i = 1; i <= n; i++) {
if (vis[i]==0){
num[step] = nn[i-1];
vis[i] = 1;
dfs1(step+1,nn);
vis[i] = 0;
}
}
}
public static void main(String[] args) {
n = 4;
Scanner sc = new Scanner(System.in);
while (sc.hasNext()){
int a = sc.nextInt();
int b = sc.nextInt();
int c = sc.nextInt();
int d = sc.nextInt();
if (a==0&&b==0&&c==0&&d==0){
break;
}
int[] nn = {a,b,c,d};
Arrays.sort(nn);
dfs1(1,nn);
}
}
}