import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
public static void main
(String[] args
) {
String[] input
= {"c",
"b",
"a",
"d",
"e"};
//List<String> inputList = new ArrayList<String>(input);
List<String> l = new ArrayList<String>();
for (int i = 0; i < input.length; i++)
l.add(input[i]);
}
}
public static class CustomComparator implements Comparator<String> {
public CustomComparator
(String[] orderArray
){ order
= new HashMap
<String, Integer
>();
for(int i = 0; i< orderArray.length; i++){
order.put(orderArray[i], i);
}
}
if (order.containsKey(a) && order.containsKey(b)){
return order.get(a) - order.get(b);
}
if (order.containsKey(a)){
return -1;
}
if (order.containsKey(b)){
return 1;
}
return a.compareTo(b);
}
}
}
aW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgoKCi8qIE5hbWUgb2YgdGhlIGNsYXNzIGhhcyB0byBiZSAiTWFpbiIgb25seSBpZiB0aGUgY2xhc3MgaXMgcHVibGljLiAqLwpjbGFzcyBJZGVvbmUKewogIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpCiAgewogICAgU3RyaW5nW10gb3JkZXIgPSB7ImQiLCAiYyJ9OwogICAgU3RyaW5nW10gaW5wdXQgPSB7ImMiLCJiIiwiYSIsImQiLCAiZSJ9OwogICAgCiAgICAvL0xpc3Q8U3RyaW5nPiBpbnB1dExpc3QgPSBuZXcgQXJyYXlMaXN0PFN0cmluZz4oaW5wdXQpOwogICAgCiAgICBMaXN0PFN0cmluZz4gbCA9IG5ldyBBcnJheUxpc3Q8U3RyaW5nPigpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCBpbnB1dC5sZW5ndGg7IGkrKykKICAgICAgbC5hZGQoaW5wdXRbaV0pOwogICAgICAKICAgIENvbGxlY3Rpb25zLnNvcnQobCwgbmV3IEN1c3RvbUNvbXBhcmF0b3Iob3JkZXIpKTsKICAgIAogICAgZm9yIChTdHJpbmcgczogbCl7CiAgICAJICAgIFN5c3RlbS5vdXQucHJpbnQocyk7CiAgICB9CiAgfQogIAogIAogIApwdWJsaWMgc3RhdGljIGNsYXNzIEN1c3RvbUNvbXBhcmF0b3IgaW1wbGVtZW50cyBDb21wYXJhdG9yPFN0cmluZz4gewogIE1hcDxTdHJpbmcsIEludGVnZXI+IG9yZGVyOyAKICAKICBwdWJsaWMgQ3VzdG9tQ29tcGFyYXRvcihTdHJpbmdbXSBvcmRlckFycmF5KXsKICAgIG9yZGVyID0gbmV3IEhhc2hNYXA8U3RyaW5nLCBJbnRlZ2VyPigpOwogICAgCiAgICBmb3IoaW50IGkgPSAwOyBpPCBvcmRlckFycmF5Lmxlbmd0aDsgaSsrKXsKICAgICBvcmRlci5wdXQob3JkZXJBcnJheVtpXSwgaSk7IAogICAgfQogIH0KICAKICAKICBwdWJsaWMgaW50IGNvbXBhcmUoU3RyaW5nIGEsIFN0cmluZyBiKXsKICAgIGlmIChvcmRlci5jb250YWluc0tleShhKSAmJiBvcmRlci5jb250YWluc0tleShiKSl7CiAgICAgIHJldHVybiBvcmRlci5nZXQoYSkgLSBvcmRlci5nZXQoYik7CiAgICB9CiAgICBpZiAob3JkZXIuY29udGFpbnNLZXkoYSkpewogICAgICByZXR1cm4gLTE7CiAgICB9CiAgICBpZiAob3JkZXIuY29udGFpbnNLZXkoYikpewogICAgICByZXR1cm4gMTsKICAgIH0KICAgIHJldHVybiBhLmNvbXBhcmVUbyhiKTsKICB9Cn0KfQ==