import java.math.*;

public class Euler444 {
    public static String solve() {
        MathContext mc = new MathContext(120);
        long n = 100000000000000L;
        int k = 20;
        BigDecimal EG = new BigDecimal(
                "0.5772156649015328606065120900824024310421593359399235988057672348848677267776646709369470632917467495",
                mc);
        BigDecimal x = new BigDecimal(n + k, mc);
        BigDecimal inv = BigDecimal.ONE.divide(x, mc);
        BigDecimal inv2 = inv.multiply(inv, mc);
        BigDecimal inv4 = inv2.multiply(inv2, mc), inv6 = inv4.multiply(inv2, mc), inv8 = inv4.multiply(inv4, mc);
        BigDecimal inv10 = inv8.multiply(inv2, mc), inv12 = inv10.multiply(inv2, mc), inv14 = inv12.multiply(inv2, mc);
        BigDecimal inv16 = inv14.multiply(inv2, mc), inv18 = inv16.multiply(inv2, mc), inv20 = inv18.multiply(inv2, mc);
        BigDecimal lnx = ln(x, mc);
        BigDecimal H = lnx.add(EG, mc).add(inv.divide(new BigDecimal(2), mc), mc)
                .subtract(inv2.divide(new BigDecimal(12), mc), mc).add(inv4.divide(new BigDecimal(120), mc), mc)
                .subtract(inv6.divide(new BigDecimal(252), mc), mc).add(inv8.divide(new BigDecimal(240), mc), mc)
                .subtract(new BigDecimal(5).multiply(inv10, mc).divide(new BigDecimal(660), mc), mc)
                .add(new BigDecimal(691).multiply(inv12, mc).divide(new BigDecimal(32760), mc), mc)
                .subtract(inv14.divide(new BigDecimal(12), mc), mc)
                .add(new BigDecimal(3617).multiply(inv16, mc).divide(new BigDecimal(8160), mc), mc)
                .subtract(new BigDecimal(43867).multiply(inv18, mc).divide(new BigDecimal(14364), mc), mc)
                .add(new BigDecimal(174611).multiply(inv20, mc).divide(new BigDecimal(6600), mc), mc);
        BigDecimal Hk = BigDecimal.ZERO;
        for (int i = 1; i <= k; i++)
            Hk = Hk.add(BigDecimal.ONE.divide(new BigDecimal(i), mc), mc);
        BigDecimal comb = BigDecimal.ONE;
        for (int i = 1; i <= k; i++) {
            comb = comb.multiply(new BigDecimal(n + i), mc);
            comb = comb.divide(new BigDecimal(i), mc);
        }
        BigDecimal result = comb.multiply(H.subtract(Hk, mc), mc);
        String s = String.format("%.9e", result);
        String[] parts = s.split("e");
        int exp = Integer.parseInt(parts[1].startsWith("+") ? parts[1].substring(1) : parts[1]);
        return parts[0] + "e" + exp;
    }

    static BigDecimal ln(BigDecimal x, MathContext mc) {
        // Use log10 conversion: ln(x) = log10(x) / log10(e)
        double approx = Math.log(x.doubleValue());
        BigDecimal result = new BigDecimal(approx, mc);
        // Newton refinement: ln(x) via exp
        for (int i = 0; i < 5; i++) {
            BigDecimal ex = exp(result, mc);
            BigDecimal diff = x.subtract(ex, mc).divide(ex, mc);
            result = result.add(diff, mc);
        }
        return result;
    }

    static BigDecimal exp(BigDecimal x, MathContext mc) {
        BigDecimal sum = BigDecimal.ONE, term = BigDecimal.ONE;
        for (int i = 1; i <= 100; i++) {
            term = term.multiply(x, mc).divide(new BigDecimal(i), mc);
            sum = sum.add(term, mc);
            if (term.abs().compareTo(new BigDecimal("1e-110")) < 0)
                break;
        }
        return sum;
    }

    public static void main(String[] args) {
        System.out.println(solve());
    }
}
