package com.javarush.task.task18.task1804;

import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

/*
Самые редкие байты
*/

public class Solution {
    public static void main(String[] args) throws Exception {
        try (BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in))) {
            String filename = bufferedReader.readLine();
            Map<Byte, Integer> byteCounts = new HashMap<>();
            int minCount = Integer.MAX_VALUE;
            int currentByte;
            try (FileInputStream fileInputStream = new FileInputStream(filename)) {
                while ((currentByte = fileInputStream.read()) != -1) {
                    Byte byteValue = (byte) currentByte;
                    int count = byteCounts.getOrDefault(byteValue, 0) + 1;
                    byteCounts.put(byteValue, count);
                    if (count < minCount)
                        minCount = count;
                }
            }
            List<Byte> uniqueBytes = new ArrayList<>();
            for (Map.Entry<Byte, Integer> entry : byteCounts.entrySet()) {
                if (entry.getValue() == minCount)
                    uniqueBytes.add(entry.getKey());
            }

            for (Byte byteValue : uniqueBytes) {
                System.out.print(byteValue + " ");
            }
        }
    }
}
не могу понять почему валидатор выводит time is Out, причем для нахождения максимума все работает