AOJ 0114: Accepted
AOJ 1042: Accepted
AOJ 0185: Accepted
AOJ 0523: Accepted