input é uma string e bem... quando input[0] é 'k', aparentemente é o mesmo que 'f'? claramente deveria ser falso e não gerar "f detectado", certo? k parece ter um valor de 107 e f parece ter um valor de 102, então mesmo quando lido como ints, não parece que deveria ser possível que eles fossem iguais
Assim como o @Dúthomhas comentou, você tem um ponto e vírgula após sua
if
declaração.remova-o e seu código deverá funcionar.
O ponto e vírgula efetivamente encerra a
if
instrução, portanto o bloco seguinte é sempre executado, independentemente da condição.