import java.math.BigInteger;

public class print_hej {
    public static void main(String[] args) {
        int decimals = 100;
        if (args.length > 0) {
            try {
                decimals = Integer.parseInt(args[0]);
                if (decimals <= 0) decimals = 100;
            } catch (NumberFormatException e) {
                decimals = 100;
            }
        }
        
        BigInteger pi = calculatePi(decimals);
        System.out.println(formatPi(pi, decimals));
    }
    
    // Calculate arctan(1/x) using Taylor series
    static BigInteger arctan(int x, int decimals) {
        BigInteger scale = BigInteger.TEN.pow(decimals + 10);
        BigInteger xBig = BigInteger.valueOf(x);
        BigInteger xSquared = xBig.multiply(xBig);
        
        BigInteger result = BigInteger.ZERO;
        BigInteger term = scale.divide(xBig);
        
        int n = 0;
        while (term.compareTo(BigInteger.ZERO) != 0 && n < decimals * 3) {
            BigInteger divisor = BigInteger.valueOf(2 * n + 1);
            BigInteger contrib = term.divide(divisor);
            
            if (n % 2 == 0) {
                result = result.add(contrib);
            } else {
                result = result.subtract(contrib);
            }
            
            term = term.divide(xSquared);
            n++;
            
            if (n > decimals * 2) break;
        }
        
        return result;
    }
    
    // Calculate pi using Machin's formula
    static BigInteger calculatePi(int decimals) {
        BigInteger atan1_5 = arctan(5, decimals);
        BigInteger atan1_239 = arctan(239, decimals);
        
        return atan1_5.multiply(BigInteger.valueOf(16))
                     .subtract(atan1_239.multiply(BigInteger.valueOf(4)));
    }
    
    // Format pi with decimal point
    static String formatPi(BigInteger pi, int decimals) {
        String piStr = pi.toString();
        while (piStr.length() < decimals + 10) {
            piStr = "0" + piStr;
        }
        return "3." + piStr.substring(1, decimals + 1);
    }
}