def main():

    from sys import setrecursionlimit, stdin

    from os import environ

    from collections import defaultdict, deque, Counter

    from math import ceil, floor, gcd

    from itertools import accumulate, combinations, combinations_with_replacement

    setrecursionlimit(10**6)

    dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in environ else lambda *x: 0

    input = lambda: stdin.readline().rstrip()

    LMIIS = lambda: list(map(int,input().split()))

    II = lambda: int(input())

    P = 10**9+7

    INF = 10**9+10



    sa,sb = input().split()

    a = int(sa)

    sb = sb.split('.')

    b100 = int(sb[0])*100

    if len(sb) ==2:

        b100 += int(sb[1])

    print(a*b100//100)

    # print(int(a*(b*10**2))//10**2)

    # print(int(a),int(b*10**2))

    # print(int(a)*int(b*10**2)//10**2)

    

main()

#999999999999999 9.99

def main():

    from sys import setrecursionlimit, stdin

    from os import environ

    from collections import defaultdict, deque, Counter

    from math import ceil, floor, gcd

    from itertools import accumulate, combinations, combinations_with_replacement

    setrecursionlimit(10**6)

    dbg = (lambda *something: print(*something)) if 'TERM_PROGRAM' in environ else lambda *x: 0

    input = lambda: stdin.readline().rstrip()

    LMIIS = lambda: list(map(int,input().split()))

    II = lambda: int(input())

    P = 10**9+7

    INF = 10**9+10

    sa,sb = input().split()

    a = int(sa)

    b = int(float(sb)*100+0.5)

    print(a*b//100)



    

main()

def main():
    from sys import setrecursionlimit, stdin
    from os import environ
    from collections import defaultdict, deque, Counter
    from math import ceil, floor, gcd
    from itertools import accumulate, combinations, combinations_with_replacement

    setrecursionlimit(10**6)
    dbg = (
        (lambda *something: print(*something))
        if "TERM_PROGRAM" in environ
        else lambda *x: 0
    )
    input = lambda: stdin.readline().rstrip()
    LMIIS = lambda: list(map(int, input().split()))
    II = lambda: int(input())
    P = 10**9 + 7
    INF = 10**9 + 10
    sa, sb = input().split()
    a = int(sa)
    sb = sb.split(".")
    b100 = int(sb[0]) * 100
    if len(sb) == 2:
        b100 += int(sb[1])
    print(a * b100 // 100)
    # print(int(a*(b*10**2))//10**2)
    # print(int(a),int(b*10**2))
    # print(int(a)*int(b*10**2)//10**2)


main()
# 999999999999999 9.99

def main():
    from sys import setrecursionlimit, stdin
    from os import environ
    from collections import defaultdict, deque, Counter
    from math import ceil, floor, gcd
    from itertools import accumulate, combinations, combinations_with_replacement

    setrecursionlimit(10**6)
    dbg = (
        (lambda *something: print(*something))
        if "TERM_PROGRAM" in environ
        else lambda *x: 0
    )
    input = lambda: stdin.readline().rstrip()
    LMIIS = lambda: list(map(int, input().split()))
    II = lambda: int(input())
    P = 10**9 + 7
    INF = 10**9 + 10
    sa, sb = input().split()
    a = int(sa)
    b = int(float(sb) * 100 + 0.5)
    print(a * b // 100)


main()

-    sb = sb.split(".") -    b100 = int(sb[0]) * 100 -    if len(sb) == 2: -        b100 += int(sb[1]) -    print(a * b100 // 100) -    # print(int(a*(b*10**2))//10**2) -    # print(int(a),int(b*10**2)) -    # print(int(a)*int(b*10**2)//10**2) +    b = int(float(sb) * 100 + 0.5) +    print(a * b // 100) -# 999999999999999 9.99