E. 求翻转所需的最少次数

内存限制:256 MiB 时间限制:1000 ms 标准输入输出
题目类型:传统 评测方式:文本比较

题目描述

一一段代码是由长度为不超过100000的十六进制字符组成的(0~9和A~F),现在需要将其转换为二进制的0/1串(要确保最高位是1),然后对这个0/1串进行翻转操作。对于每次翻转操作,可以选择这个0/1串中的其中一位,将这一位和这一位相邻的两位,一共三位,分别进行翻转,也即0变1,1变0。如果指定的这一位是序列的开头或者结尾,那么翻转这一位和存在的相邻位即可。求要将这个0/1串变为全0的串,最少需要翻转多少步。

输入格式

一个十六进制的字符串,由0~9和A~F组成。

输出格式

最少的翻转步骤次数,如果始终不能将其全变为0,则输出No。

样例

输入

15

输出

3

输入

FF

输出

3

输入

10

输出

No