Почему мой код не принимается валидатором? Хотя меняет числа по условию, и разделенные пробелом, и запятыми (которые могут быть):
public class Solution {
    public static Map<Integer, String> map = new HashMap<Integer, String>();
    static{
        map.put(0, "ноль");
        map.put(1, "один");
        map.put(2, "два");
        map.put(3, "три");
        map.put(4, "четыре");
        map.put(5, "пять");
        map.put(6, "шесть");
        map.put(7, "семь");
        map.put(8, "восемь");
        map.put(9, "девять");
        map.put(10, "десять");
        map.put(11, "одиннадцать");
        map.put(12, "двенадцать");

    }

    public static void main(String[] args) throws Exception {
        BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
        String z = reader.readLine();
        reader.close();
        BufferedReader input = new BufferedReader(new FileReader(z));

        while (input.ready()){
            String a = input.readLine();
            Pattern p = Pattern.compile("(\\b)\\d\\d?(\\b)");
            Matcher m = p.matcher(a);
            String result = a;
            while (m.find()){
                String b = (a.substring(m.start(),m.end()));
                int key = Integer.parseInt(b);

                if (map.containsKey(key)){
                    result = result.replaceFirst(b, map.get(key));

                }

            }
            System.out.println(result);
        }
        input.close();
    }
}
А взятый отсюда : https://javarush.com/help/2528 (там остается только блок Try засунуть внутрь цикла) принимается валидатором, хотя при попытке ему скормить 11 12 11 10 выдает: 11 двенадцать одиннадцать десять.