Blockquote
auto IT = M.lower_bound(cnt); a następnie dereferencja iteratora bez sprawdzenia czy IT != M.end() wygląda podejrzanie.
Uch, och, ach. Ale wtopa 
Blockquote
Za mały zakres wartości w deklaracji char CNT[300] = {};.
Ojej, no tak, faktycznie! Pomyliło mi się, wiadomo co 
Teraz jest już AC, dziękuję bardzo! 