import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringJoiner;
import java.util.StringTokenizer;
import java.util.function.IntUnaryOperator;
import java.util.function.LongUnaryOperator;

public class Main {
    static In in = new In();
    static Out out = new Out();
    static final long mod = 1000000007;
    static final long inf = 0x1fffffffffffffffL;
    static final int iinf = 0x3fffffff;
    static final int[] da = {-1, 0, 1, 0, -1, 1, 1, -1, -1};

    void solve() {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    }

    public static void main(String[]$) {
        new Main().solve();
        out.flush();
    }
}

class In {
    private BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 0x10000);
    private StringTokenizer tokenizer;

    String next() {
        try {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } catch (IOException ignored) {
        }
        return tokenizer.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(next());
    }

    long nextLong() {
        return Long.parseLong(next());
    }

    char[] nextCharArray() {
        return next().toCharArray();
    }

    char[][] nextCharGrid(int n, int m) {
        char[][] a = new char[n][m];
        for (int i = 0; i < n; i++) {
            a[i] = next().toCharArray();
        }
        return a;
    }

    int[] nextIntArray(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextInt();
        }
        return a;
    }

    int[] nextIntArray(int n, IntUnaryOperator op) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsInt(nextInt());
        }
        return a;
    }

    long[] nextLongArray(int n) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextLong();
        }
        return a;
    }

    long[] nextLongArray(int n, LongUnaryOperator op) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsLong(nextLong());
        }
        return a;
    }
}

class Out {
    private PrintWriter out = new PrintWriter(System.out);
    boolean autoFlush = false;

    void println(Object... a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (Object obj : a) {
            joiner.add(String.valueOf(obj));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void println(char[] s) {
        out.println(String.valueOf(s));
        if (autoFlush) {
            out.flush();
        }
    }

    void println(int[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (int i : a) {
            joiner.add(Integer.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void println(long[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (long i : a) {
            joiner.add(Long.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void flush() {
        out.flush();
    }
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.io.PrintWriter; PrintWriter java.io import java.util.StringJoiner; StringJoiner java.util import java.util.StringTokenizer; StringTokenizer java.util import java.util.function.IntUnaryOperator; IntUnaryOperator java.util.function import java.util.function.LongUnaryOperator; LongUnaryOperator java.util.function public class Main {
    static In in = new In();
    static Out out = new Out();
    static final long mod = 1000000007;
    static final long inf = 0x1fffffffffffffffL;
    static final int iinf = 0x3fffffff;
    static final int[] da = {-1, 0, 1, 0, -1, 1, 1, -1, -1};

    void solve() {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    }

    public static void main(String[]$) {
        new Main().solve();
        out.flush();
    }
} Main static In in = new In(); in new In() static Out out = new Out(); out new Out() static final long mod = 1000000007; mod 1000000007 static final long inf = 0x1fffffffffffffffL; inf 0x1fffffffffffffffL static final int iinf = 0x3fffffff; iinf 0x3fffffff static final int[] da = {-1, 0, 1, 0, -1, 1, 1, -1, -1}; da {-1, 0, 1, 0, -1, 1, 1, -1, -1} -1 1 0 1 0 -1 1 1 1 -1 1 -1 1 void solve() {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    } solve {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    } long a = in.nextLong(); a in.nextLong() in.nextLong in long b = (long)(Double.parseDouble(in.next()) * 100); b (long)(Double.parseDouble(in.next()) * 100) Double.parseDouble(in.next()) Double.parseDouble Double in.next() in.next in 100 out.println(a * b / 100) out.println out a * b / 100 a * b a b 100 public static void main(String[]$) {
        new Main().solve();
        out.flush();
    } main {
        new Main().solve();
        out.flush();
    } new Main().solve() new Main().solve new Main() out.flush() out.flush out String[]$ $ class In {
    private BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 0x10000);
    private StringTokenizer tokenizer;

    String next() {
        try {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } catch (IOException ignored) {
        }
        return tokenizer.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(next());
    }

    long nextLong() {
        return Long.parseLong(next());
    }

    char[] nextCharArray() {
        return next().toCharArray();
    }

    char[][] nextCharGrid(int n, int m) {
        char[][] a = new char[n][m];
        for (int i = 0; i < n; i++) {
            a[i] = next().toCharArray();
        }
        return a;
    }

    int[] nextIntArray(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextInt();
        }
        return a;
    }

    int[] nextIntArray(int n, IntUnaryOperator op) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsInt(nextInt());
        }
        return a;
    }

    long[] nextLongArray(int n) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextLong();
        }
        return a;
    }

    long[] nextLongArray(int n, LongUnaryOperator op) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsLong(nextLong());
        }
        return a;
    }
} In private BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 0x10000); reader new BufferedReader(new InputStreamReader(System.in), 0x10000) private StringTokenizer tokenizer; tokenizer String next() {
        try {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } catch (IOException ignored) {
        }
        return tokenizer.nextToken();
    } next {
        try {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } catch (IOException ignored) {
        }
        return tokenizer.nextToken();
    } try {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } catch (IOException ignored) {
        } catch (IOException ignored) {
        } IOException ignored {
        } {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            } tokenizer == null || !tokenizer.hasMoreTokens() tokenizer == null tokenizer null !tokenizer.hasMoreTokens() tokenizer.hasMoreTokens() tokenizer.hasMoreTokens tokenizer {
                tokenizer = new StringTokenizer(reader.readLine());
            } tokenizer = new StringTokenizer(reader.readLine()) tokenizer new StringTokenizer(reader.readLine()) return tokenizer.nextToken(); tokenizer.nextToken() tokenizer.nextToken tokenizer int nextInt() {
        return Integer.parseInt(next());
    } nextInt {
        return Integer.parseInt(next());
    } return Integer.parseInt(next()); Integer.parseInt(next()) Integer.parseInt Integer next() next long nextLong() {
        return Long.parseLong(next());
    } nextLong {
        return Long.parseLong(next());
    } return Long.parseLong(next()); Long.parseLong(next()) Long.parseLong Long next() next char[] nextCharArray() {
        return next().toCharArray();
    } nextCharArray {
        return next().toCharArray();
    } return next().toCharArray(); next().toCharArray() next().toCharArray next() next char[][] nextCharGrid(int n, int m) {
        char[][] a = new char[n][m];
        for (int i = 0; i < n; i++) {
            a[i] = next().toCharArray();
        }
        return a;
    } nextCharGrid {
        char[][] a = new char[n][m];
        for (int i = 0; i < n; i++) {
            a[i] = next().toCharArray();
        }
        return a;
    } char[][] a = new char[n][m]; a new char[n][m] n m for (int i = 0; i < n; i++) {
            a[i] = next().toCharArray();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            a[i] = next().toCharArray();
        } {
            a[i] = next().toCharArray();
        } a[i] = next().toCharArray() a[i] a i next().toCharArray() next().toCharArray next() next return a; a int n n int m m int[] nextIntArray(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextInt();
        }
        return a;
    } nextIntArray {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextInt();
        }
        return a;
    } int[] a = new int[n]; a new int[n] n for (int i = 0; i < n; i++) {
            a[i] = nextInt();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            a[i] = nextInt();
        } {
            a[i] = nextInt();
        } a[i] = nextInt() a[i] a i nextInt() nextInt return a; a int n n int[] nextIntArray(int n, IntUnaryOperator op) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsInt(nextInt());
        }
        return a;
    } nextIntArray {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsInt(nextInt());
        }
        return a;
    } int[] a = new int[n]; a new int[n] n for (int i = 0; i < n; i++) {
            a[i] = op.applyAsInt(nextInt());
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            a[i] = op.applyAsInt(nextInt());
        } {
            a[i] = op.applyAsInt(nextInt());
        } a[i] = op.applyAsInt(nextInt()) a[i] a i op.applyAsInt(nextInt()) op.applyAsInt op nextInt() nextInt return a; a int n n IntUnaryOperator op op long[] nextLongArray(int n) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextLong();
        }
        return a;
    } nextLongArray {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextLong();
        }
        return a;
    } long[] a = new long[n]; a new long[n] n for (int i = 0; i < n; i++) {
            a[i] = nextLong();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            a[i] = nextLong();
        } {
            a[i] = nextLong();
        } a[i] = nextLong() a[i] a i nextLong() nextLong return a; a int n n long[] nextLongArray(int n, LongUnaryOperator op) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsLong(nextLong());
        }
        return a;
    } nextLongArray {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsLong(nextLong());
        }
        return a;
    } long[] a = new long[n]; a new long[n] n for (int i = 0; i < n; i++) {
            a[i] = op.applyAsLong(nextLong());
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            a[i] = op.applyAsLong(nextLong());
        } {
            a[i] = op.applyAsLong(nextLong());
        } a[i] = op.applyAsLong(nextLong()) a[i] a i op.applyAsLong(nextLong()) op.applyAsLong op nextLong() nextLong return a; a int n n LongUnaryOperator op op class Out {
    private PrintWriter out = new PrintWriter(System.out);
    boolean autoFlush = false;

    void println(Object... a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (Object obj : a) {
            joiner.add(String.valueOf(obj));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void println(char[] s) {
        out.println(String.valueOf(s));
        if (autoFlush) {
            out.flush();
        }
    }

    void println(int[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (int i : a) {
            joiner.add(Integer.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void println(long[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (long i : a) {
            joiner.add(Long.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void flush() {
        out.flush();
    }
} Out private PrintWriter out = new PrintWriter(System.out); out new PrintWriter(System.out) boolean autoFlush = false; autoFlush false void println(Object... a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (Object obj : a) {
            joiner.add(String.valueOf(obj));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    } println {
        StringJoiner joiner = new StringJoiner(" ");
        for (Object obj : a) {
            joiner.add(String.valueOf(obj));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    } StringJoiner joiner = new StringJoiner(" "); joiner new StringJoiner(" ") for (Object obj : a) {
            joiner.add(String.valueOf(obj));
        } Object obj a {
            joiner.add(String.valueOf(obj));
        } {
            joiner.add(String.valueOf(obj));
        } joiner.add(String.valueOf(obj)) joiner.add joiner String.valueOf(obj) String.valueOf String obj out.println(joiner) out.println out joiner if (autoFlush) {
            out.flush();
        } autoFlush {
            out.flush();
        } out.flush() out.flush out Object... a a void println(char[] s) {
        out.println(String.valueOf(s));
        if (autoFlush) {
            out.flush();
        }
    } println {
        out.println(String.valueOf(s));
        if (autoFlush) {
            out.flush();
        }
    } out.println(String.valueOf(s)) out.println out String.valueOf(s) String.valueOf String s if (autoFlush) {
            out.flush();
        } autoFlush {
            out.flush();
        } out.flush() out.flush out char[] s s void println(int[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (int i : a) {
            joiner.add(Integer.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    } println {
        StringJoiner joiner = new StringJoiner(" ");
        for (int i : a) {
            joiner.add(Integer.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    } StringJoiner joiner = new StringJoiner(" "); joiner new StringJoiner(" ") for (int i : a) {
            joiner.add(Integer.toString(i));
        } int i a {
            joiner.add(Integer.toString(i));
        } {
            joiner.add(Integer.toString(i));
        } joiner.add(Integer.toString(i)) joiner.add joiner Integer.toString(i) Integer.toString Integer i out.println(joiner) out.println out joiner if (autoFlush) {
            out.flush();
        } autoFlush {
            out.flush();
        } out.flush() out.flush out int[] a a void println(long[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (long i : a) {
            joiner.add(Long.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    } println {
        StringJoiner joiner = new StringJoiner(" ");
        for (long i : a) {
            joiner.add(Long.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    } StringJoiner joiner = new StringJoiner(" "); joiner new StringJoiner(" ") for (long i : a) {
            joiner.add(Long.toString(i));
        } long i a {
            joiner.add(Long.toString(i));
        } {
            joiner.add(Long.toString(i));
        } joiner.add(Long.toString(i)) joiner.add joiner Long.toString(i) Long.toString Long i out.println(joiner) out.println out joiner if (autoFlush) {
            out.flush();
        } autoFlush {
            out.flush();
        } out.flush() out.flush out long[] a a void flush() {
        out.flush();
    } flush {
        out.flush();
    } out.flush() out.flush out public class Main {
    static In in = new In();
    static Out out = new Out();
    static final long mod = 1000000007;
    static final long inf = 0x1fffffffffffffffL;
    static final int iinf = 0x3fffffff;
    static final int[] da = {-1, 0, 1, 0, -1, 1, 1, -1, -1};

    void solve() {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    }

    public static void main(String[]$) {
        new Main().solve();
        out.flush();
    }
} public class Main {
    static In in = new In();
    static Out out = new Out();
    static final long mod = 1000000007;
    static final long inf = 0x1fffffffffffffffL;
    static final int iinf = 0x3fffffff;
    static final int[] da = {-1, 0, 1, 0, -1, 1, 1, -1, -1};

    void solve() {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    }

    public static void main(String[]$) {
        new Main().solve();
        out.flush();
    }
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.util.StringJoiner;
import java.util.StringTokenizer;
import java.util.function.IntUnaryOperator;
import java.util.function.LongUnaryOperator;

public class Main {
    static In in = new In();
    static Out out = new Out();
    static final long mod = 1000000007;
    static final long inf = 0x1fffffffffffffffL;
    static final int iinf = 0x3fffffff;
    static final int[] da = {-1, 0, 1, 0, -1, 1, 1, -1, -1};

    void solve() {
        long a = in.nextLong();
        long b = (long)(Double.parseDouble(in.next()) * 100);
        out.println(a * b / 100);
    }

    public static void main(String[]$) {
        new Main().solve();
        out.flush();
    }
}

class In {
    private BufferedReader reader = new BufferedReader(new InputStreamReader(System.in), 0x10000);
    private StringTokenizer tokenizer;

    String next() {
        try {
            while (tokenizer == null || !tokenizer.hasMoreTokens()) {
                tokenizer = new StringTokenizer(reader.readLine());
            }
        } catch (IOException ignored) {
        }
        return tokenizer.nextToken();
    }

    int nextInt() {
        return Integer.parseInt(next());
    }

    long nextLong() {
        return Long.parseLong(next());
    }

    char[] nextCharArray() {
        return next().toCharArray();
    }

    char[][] nextCharGrid(int n, int m) {
        char[][] a = new char[n][m];
        for (int i = 0; i < n; i++) {
            a[i] = next().toCharArray();
        }
        return a;
    }

    int[] nextIntArray(int n) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextInt();
        }
        return a;
    }

    int[] nextIntArray(int n, IntUnaryOperator op) {
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsInt(nextInt());
        }
        return a;
    }

    long[] nextLongArray(int n) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = nextLong();
        }
        return a;
    }

    long[] nextLongArray(int n, LongUnaryOperator op) {
        long[] a = new long[n];
        for (int i = 0; i < n; i++) {
            a[i] = op.applyAsLong(nextLong());
        }
        return a;
    }
}

class Out {
    private PrintWriter out = new PrintWriter(System.out);
    boolean autoFlush = false;

    void println(Object... a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (Object obj : a) {
            joiner.add(String.valueOf(obj));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void println(char[] s) {
        out.println(String.valueOf(s));
        if (autoFlush) {
            out.flush();
        }
    }

    void println(int[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (int i : a) {
            joiner.add(Integer.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void println(long[] a) {
        StringJoiner joiner = new StringJoiner(" ");
        for (long i : a) {
            joiner.add(Long.toString(i));
        }
        out.println(joiner);
        if (autoFlush) {
            out.flush();
        }
    }

    void flush() {
        out.flush();
    }
}
