#55066: python 基本解


lunlun990121@gmail.com (小星星)


import sys

def get_upper(num):
    res = list(num)
    for i in range(len(res)):
        if int(res[i]) % 2 == 0:
            res[i] = str(int(res[i])+1)
            for j in range(i+1,len(res)):
                res[j] = "1"
            break
    return int("".join(res))
   
def get_lower(num):
    found = True
    for char in num:
        if int(char) % 2 == 0:
            found = False
            break
    if found:
        return int(num) if num else 0
    res = list(num)
    for i in range(len(res)):
        if int(res[i]) % 2 == 0:
            prefix_val = int("".join(res[:i+1]))-1
            remain_len = len(res) - i - 1
            if remain_len <= 0:
                next_s = "9"*remain_len
            else:
                next_s = str(prefix_val) + ("9"*remain_len)
            return get_lower(next_s)
    return int(num)

def solve():
    data = sys.stdin.read().split()
    if not data:
        return
    result = []
    for i in data:
        up_val = get_upper(i)
        low_val = get_lower(i)
        diff1 = up_val - int(i)
        diff2 = int(i) - low_val
        result.append(str(min(diff1,diff2)))
    sys.stdout.write("\n".join(result)+"\n")
if __name__ == "__main__":
    solve()