gl
package com.javarush.task.task18.task1804;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.*;
import java.util.stream.Collectors;
/*
Самые редкие байты
*/
public class Solution {
public static void main(String[] args) throws Exception {
Scanner scan = new Scanner(System.in);
String path = scan.nextLine();
List<Integer> list;
try (InputStreamReader input = new InputStreamReader(new FileInputStream(path))) {
list = new ArrayList<>();
int bite;
while ((bite = input.read()) > 0) {
list.add(bite);
}
} catch (Exception e){
throw new Exception(e.getMessage());
}
List<Integer> list1 = list.stream().sorted().collect(Collectors.toList());
//list1.forEach(s -> System.out.print(s + " "));
//System.out.println();
Map<Integer, Integer> resultList = new HashMap<>();
int count = 1;
int pos = 1;
for (int i = 0; i < list1.size() - 1; i++) {
if (list1.get(i) == list1.get(pos)) {
count++;
resultList.put(list1.get(pos), count);
if (pos < list1.size() - 1)
pos++;
else
break;
} else {
if (pos < list1.size() - 1)
pos++;
else
break;
count = 1;
resultList.put(list.get(pos), count);
}
}
if (resultList.isEmpty()){
list1.forEach(x -> System.out.println(x + " "));
} else {
int tab = Integer.MAX_VALUE;
for (Map.Entry<Integer, Integer> entry : resultList.entrySet()){
if (entry.getValue() < tab) {
tab = entry.getValue();
}
}
//System.out.println(tab);
int finalTab = tab;
//System.out.println(resultList);
resultList.forEach((x, y) -> System.out.print(y == finalTab ? x + " " : ""));
}
}
}
