def main():

    A, B = input().split()



    A = int(A)



    B_spl = B.split('.')

    L = len(B_spl[1])  # 小数部分の桁数, int化前に桁を調べる必要がある(末尾に0が続くケース)

    B_int, B_frac = list(map(int, B_spl))  # 整数部分, 小数部分



    ans = (A * B_int) + (A * B_frac) // pow(10, L)



    print(ans)





if __name__ == '__main__':

    main()

def main():

    A, B = input().split()



    A = int(A)

    B = float(B)



    B100 = int(B * 100 + 0.001)



    print((A * B100 // 100))





if __name__ == '__main__':

    main()

def main():
    A, B = input().split()
    A = int(A)
    B_spl = B.split(".")
    L = len(B_spl[1])  # 小数部分の桁数, int化前に桁を調べる必要がある(末尾に0が続くケース)
    B_int, B_frac = list(map(int, B_spl))  # 整数部分, 小数部分
    ans = (A * B_int) + (A * B_frac) // pow(10, L)
    print(ans)


if __name__ == "__main__":
    main()

def main():
    A, B = input().split()
    A = int(A)
    B = float(B)
    B100 = int(B * 100 + 0.001)
    print((A * B100 // 100))


if __name__ == "__main__":
    main()

-    B_spl = B.split(".") -    L = len(B_spl[1])  # 小数部分の桁数, int化前に桁を調べる必要がある(末尾に0が続くケース) -    B_int, B_frac = list(map(int, B_spl))  # 整数部分, 小数部分 -    ans = (A * B_int) + (A * B_frac) // pow(10, L) -    print(ans) +    B = float(B) +    B100 = int(B * 100 + 0.001) +    print((A * B100 // 100))