use macro DEBUG to disable output board info. use unordered_set instead of set, but time-cost not reduce, maybe the data item (20K+) is not too mush
use gprof to test
add chess_sample_id, mask form string to board_map
vector is faster than deque/list to hold chess