Capacity-Achieving Schemes for Finite-State Channels.