1. 

/**
* Angewandte Mathematik, SS09, IFB 2C
* ACM Problem #343 What Base Is This?
* Link: http://icpcres.ecs.baylor.edu/onlinejudge/index.php?option=com_onlinejudge&Itemid=8&category=5&page=show_problem&problem=279
*
* @author Andre Wolfram
* @author Christoph Miesel
* @author Robert Seilbeck
* @version 11.0, 05/04/2009
*
* Status : Accepted
* Runtime 0.830
*/


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.StringTokenizer;

public class Main {


public static void main(String[] args) throws NumberFormatException,
IOException {
BufferedReader reader = new BufferedReader(new InputStreamReader(
System.in));
String line;
while ((line = reader.readLine()) != null) {

line = line.trim();
StringTokenizer st = new StringTokenizer(line, " ");

//Leerzeichen entfernen
String x = st.nextToken().trim();
String y = st.nextToken().trim();
HashMap<Integer, Integer> values = new HashMap<Integer, Integer>();
//Zahl mit jeder möglichen basis errechnen lassen
for (int base = 1; base <= 36; base++) {
try {
int tmp = Integer.parseInt(x, base);
//Wert zusammen mit kleinster Basis in HashMap speichern
if (!values.containsKey(tmp)) {
values.put(tmp, base);
}
} catch (NumberFormatException e) {
//Falls basis kleiner als Zahl tritt exception auf
//Unschön und langsam aber einfach
}
}
boolean hasEqualNumber = false;
for (int base = 1; base <= 36; base++) {
try {
//Zweite zahl mit jeder basis berechnen
Integer index = values.get(Integer.parseInt(y, base));
if (index != null) {

System.out.println(x + " (base " + (index) + ") = " + y
+ " (base " + base + ")");
hasEqualNumber = true;
break;
}

} catch (NumberFormatException e) {
//nochmal langsam und unschön
}
}
//Ausgabe falls kein passender Wert gefunden wurde
if (!hasEqualNumber) {
System.out.println(x + " is not equal to " + y
+ " in any base 2..36");
}
}
}

}