
import java.util.*;
import java.util.stream.Collectors;
public class DemoTest10 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
int[] arr = Arrays.stream(sc.nextLine().split(",")).mapToInt(Integer::parseInt).toArray();
solve(arr);
solve2(arr);
}
}
private static void solve(int[] arr) {
HashMap<Integer,Integer> map = new LinkedHashMap<>();
for(int a: arr){
map.put(a,map.getOrDefault(a,0)+1);
}
List<Map.Entry<Integer, Integer>> collect = map.entrySet().stream().sorted((e1, e2) -> e2.getValue() - e1.getValue()).collect(Collectors.toList());
StringBuilder sb = new StringBuilder();
collect.forEach(entry->{
sb.append(entry.getKey()).append(",");
});
System.out.println(sb.substring(0,sb.length()-1));
}
private static void solve2(int[] arr) {
HashMap<Integer,Integer> map = new HashMap<>();
HashMap<Integer,Integer> id2IndexMap = new HashMap<>();
for(int i=0;i< arr.length; i++){
map.put(arr[i],map.getOrDefault(arr[i],0)+1);
if(!id2IndexMap.containsKey(arr[i])){
id2IndexMap.put(arr[i],i);
}
}
List<Map.Entry<Integer, Integer>> collect = map.entrySet().stream()
.sorted((e1, e2) -> {
if(Objects.equals(e1.getValue(), e2.getValue())){
return id2IndexMap.get(e1.getKey()) - id2IndexMap.get(e2.getKey());
}
return e2.getValue() - e1.getValue();
}).collect(Collectors.toList());
StringBuilder sb = new StringBuilder();
collect.forEach(entry->{
sb.append(entry.getKey()).append(",");
});
System.out.println(sb.substring(0,sb.length()-1));
}
}