AOJ 0005: Accepted
AOJ 0006: Accepted
AOJ 0007: Accepted
AOJ 0008: Accepted