← Home
package main

import (
	"fmt"
)

func main() {
	var n int64
	var x int
	if _, err := fmt.Scan(&n, &x); err != nil {
		return
	}

	V := make([]float64, 128)
	for i := 0; i <= x; i++ {
		fmt.Scan(&V[i])
	}

	for length := 1; length < 128; length *= 2 {
		for i := 0; i < 128; i += 2 * length {
			for j := 0; j < length; j++ {
				u := V[i+j]
				v := V[i+length+j]
				V[i+j] = u + v
				V[i+length+j] = u - v
			}
		}
	}

	for i := 0; i < 128; i++ {
		res := 1.0
		base := V[i]
		exp := n
		for exp > 0 {
			if exp%2 == 1 {
				res *= base
			}
			base *= base
			exp /= 2
		}
		V[i] = res
	}

	for length := 1; length < 128; length *= 2 {
		for i := 0; i < 128; i += 2 * length {
			for j := 0; j < length; j++ {
				u := V[i+j]
				v := V[i+length+j]
				V[i+j] = u + v
				V[i+length+j] = u - v
			}
		}
	}

	prob0 := V[0] / 128.0
	ans := 1.0 - prob0
	fmt.Printf("%.9f\n", ans)
}