package main import ( "bufio" "fmt" "math" "os" "strconv" ) var sc = bufio.NewScanner(os.Stdin) func main() { sc.Split(bufio.ScanWords) seq := make([]int64, 0, 100) seq = append(seq, 1) p, c := nextInt(), nextInt() pt, ct := []int64{2, 3, 5, 7, 11, 13}, []int64{4, 6, 8, 9, 10, 12} for i := 0; i < p; i++ { subSeq := make([]int64, 0, 10000) for _, v := range seq { for _, v2 := range pt { subSeq = append(subSeq, v*v2) } } seq = subSeq } for i := 0; i < c; i++ { subSeq := make([]int64, 0, 10000) for _, v := range seq { for _, v2 := range ct { subSeq = append(subSeq, v*v2) } } seq = subSeq } t := int64(0) for _, v := range seq { t += v } fmt.Println(float64(t) / math.Pow(float64(6), float64(p+c))) } func nextLine() string { sc.Scan() return sc.Text() } func nextInt() int { i, _ := strconv.Atoi(nextLine()) return i } func nextInt64() int64 { i, _ := strconv.ParseInt(nextLine(), 10, 64) return i } func nextUint64() uint64 { i, _ := strconv.ParseUint(nextLine(), 10, 64) return i } func nextFloat() float64 { f, _ := strconv.ParseFloat(nextLine(), 64) return f }