Hard decision decoding