import java.util.*;
class Main {
public static void main
(String[] args
) { int total=0;
LinkedList<Integer> remDigits=new LinkedList<Integer>();
for(int n=1;n<=9;n++)
for(int n9=2;n9<9;n9++){ //starting digit can't be 1 or 2
int thouC=(remDigits.get(n9)).intValue();
remDigits.remove(n9);
for(int n8=0;n8<8;n8++){
int hundC=(remDigits.get(n8)).intValue();
remDigits.remove(n8);
for(int n7=0;n7<7;n7++){
int tenC=(remDigits.get(n7)).intValue();
remDigits.remove(n7);
for(int n6=0;n6<6;n6++){
int oneC=(remDigits.get(n6)).intValue();
remDigits.remove(n6);
int c=1000*thouC+100*hundC+10*tenC+oneC;
boolean found=false;
int n5=0;
while((n5<5)&&(found==false)){
int ab1=(remDigits.get(n5)).intValue();
remDigits.remove(n5);
int n4=0;
while((n4<4)&&(found==false)){
int ab2=(remDigits.get(n4)).intValue();
remDigits.remove(n4);
int n3=0;
while((n3<3)&&(found==false)){
int ab3=(remDigits.get(n3)).intValue();
remDigits.remove(n3);
int n2=0;
while((n2<2)&&(found==false)){
int ab4=(remDigits.get(n2)).intValue();
remDigits.remove(n2);
int ab5=(remDigits.get(0)).intValue();
int a3=100*ab1+10*ab2+ab3;
int a4=1000*ab1+100*ab2+10*ab3+ab4;
int b2=10*ab4+ab5;
int b1=ab5;
if((a3*b2)==c){
found=true;
total+=c;
System.
out.
println(c
+" = "+a3
+"x"+b2
); }
else if((a4*b1)==c){
found=true;
total+=c;
System.
out.
println(c
+" = "+a4
+"x"+b1
); }
remDigits.
add(n2,
new Integer(ab4
)); n2++;
}
remDigits.
add(n3,
new Integer(ab3
)); n3++;
}
remDigits.
add(n4,
new Integer(ab2
)); n4++;
}
remDigits.
add(n5,
new Integer(ab1
)); n5++;
}
remDigits.
add(n6,
new Integer(oneC
)); }
remDigits.
add(n7,
new Integer(tenC
)); }
remDigits.
add(n8,
new Integer(hundC
)); }
remDigits.
add(n9,
new Integer(thouC
)); }
}
}
aW1wb3J0IGphdmEudXRpbC4qOwoKY2xhc3MgTWFpbiB7CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CglpbnQgdG90YWw9MDsKCglMaW5rZWRMaXN0PEludGVnZXI+IHJlbURpZ2l0cz1uZXcgTGlua2VkTGlzdDxJbnRlZ2VyPigpOwoJZm9yKGludCBuPTE7bjw9OTtuKyspCgkJcmVtRGlnaXRzLmFkZChuZXcgSW50ZWdlcihuKSk7CgkKCWZvcihpbnQgbjk9MjtuOTw5O245KyspeyAvL3N0YXJ0aW5nIGRpZ2l0IGNhbid0IGJlIDEgb3IgMgoJICBpbnQgdGhvdUM9KHJlbURpZ2l0cy5nZXQobjkpKS5pbnRWYWx1ZSgpOwoJICByZW1EaWdpdHMucmVtb3ZlKG45KTsKCSAgZm9yKGludCBuOD0wO244PDg7bjgrKyl7CgkgICAgaW50IGh1bmRDPShyZW1EaWdpdHMuZ2V0KG44KSkuaW50VmFsdWUoKTsKCSAgICByZW1EaWdpdHMucmVtb3ZlKG44KTsKCSAgICBmb3IoaW50IG43PTA7bjc8NztuNysrKXsKCSAgICAgIGludCB0ZW5DPShyZW1EaWdpdHMuZ2V0KG43KSkuaW50VmFsdWUoKTsKCSAgICAgIHJlbURpZ2l0cy5yZW1vdmUobjcpOwoJICAgICAgZm9yKGludCBuNj0wO242PDY7bjYrKyl7CgkJaW50IG9uZUM9KHJlbURpZ2l0cy5nZXQobjYpKS5pbnRWYWx1ZSgpOwoJCXJlbURpZ2l0cy5yZW1vdmUobjYpOwoKCQlpbnQgYz0xMDAwKnRob3VDKzEwMCpodW5kQysxMCp0ZW5DK29uZUM7CgkJYm9vbGVhbiBmb3VuZD1mYWxzZTsKCQlpbnQgbjU9MDsKCQl3aGlsZSgobjU8NSkmJihmb3VuZD09ZmFsc2UpKXsKCQkgICAgaW50IGFiMT0ocmVtRGlnaXRzLmdldChuNSkpLmludFZhbHVlKCk7CgkJICAgIHJlbURpZ2l0cy5yZW1vdmUobjUpOwoJCSAgICBpbnQgbjQ9MDsKCQkgICAgd2hpbGUoKG40PDQpJiYoZm91bmQ9PWZhbHNlKSl7CgkJICAgICAgaW50IGFiMj0ocmVtRGlnaXRzLmdldChuNCkpLmludFZhbHVlKCk7CgkJICAgICAgcmVtRGlnaXRzLnJlbW92ZShuNCk7CgkJICAgICAgaW50IG4zPTA7CgkJICAgICAgd2hpbGUoKG4zPDMpJiYoZm91bmQ9PWZhbHNlKSl7CgkJCWludCBhYjM9KHJlbURpZ2l0cy5nZXQobjMpKS5pbnRWYWx1ZSgpOwoJCSAgICAgIAlyZW1EaWdpdHMucmVtb3ZlKG4zKTsKCQkgICAgICAJaW50IG4yPTA7CgkJCXdoaWxlKChuMjwyKSYmKGZvdW5kPT1mYWxzZSkpewoJCQkgIGludCBhYjQ9KHJlbURpZ2l0cy5nZXQobjIpKS5pbnRWYWx1ZSgpOwoJCQkgIHJlbURpZ2l0cy5yZW1vdmUobjIpOwoJCQkgIGludCBhYjU9KHJlbURpZ2l0cy5nZXQoMCkpLmludFZhbHVlKCk7CgoJCQkgIGludCBhMz0xMDAqYWIxKzEwKmFiMithYjM7CgkJCSAgaW50IGE0PTEwMDAqYWIxKzEwMCphYjIrMTAqYWIzK2FiNDsKCQkJICBpbnQgYjI9MTAqYWI0K2FiNTsKCQkJICBpbnQgYjE9YWI1OwoKCQkJICBpZigoYTMqYjIpPT1jKXsKCQkJICAgIGZvdW5kPXRydWU7CgkJCSAgICB0b3RhbCs9YzsKCQkJICAgIFN5c3RlbS5vdXQucHJpbnRsbihjKyIgPSAiK2EzKyJ4IitiMik7IAoJCQkgICAgfQoJCQkgIGVsc2UgaWYoKGE0KmIxKT09Yyl7CgkJCSAgIGZvdW5kPXRydWU7CgkJCSAgIHRvdGFsKz1jOwoJCQkgICBTeXN0ZW0ub3V0LnByaW50bG4oYysiID0gIithNCsieCIrYjEpOyAKCQkJICAgfQoKCQkJICByZW1EaWdpdHMuYWRkKG4yLG5ldyBJbnRlZ2VyKGFiNCkpOwoJCQkgIG4yKys7CgkJCSAgfQoJCQlyZW1EaWdpdHMuYWRkKG4zLG5ldyBJbnRlZ2VyKGFiMykpOwoJCSAgICAgIAluMysrOwoJCQl9CgkJICAgICAgcmVtRGlnaXRzLmFkZChuNCxuZXcgSW50ZWdlcihhYjIpKTsKCQkgICAgICBuNCsrOwoJCSAgICAgIH0KCQkgICAgcmVtRGlnaXRzLmFkZChuNSxuZXcgSW50ZWdlcihhYjEpKTsKCQkgICAgbjUrKzsKCQkgICAgfQoKCQlyZW1EaWdpdHMuYWRkKG42LG5ldyBJbnRlZ2VyKG9uZUMpKTsKCQl9CgkgICAgICByZW1EaWdpdHMuYWRkKG43LG5ldyBJbnRlZ2VyKHRlbkMpKTsKCSAgICAgIH0KCSAgICByZW1EaWdpdHMuYWRkKG44LG5ldyBJbnRlZ2VyKGh1bmRDKSk7CgkgICAgfQoJICByZW1EaWdpdHMuYWRkKG45LG5ldyBJbnRlZ2VyKHRob3VDKSk7CgkgIH0KCVN5c3RlbS5vdXQucHJpbnRsbih0b3RhbCk7CQogICAgfQp9