https://www.luogu.com.cn/discuss/685286?page=579
 @haoweiyi