Problem:
へびの脱皮

セアブリ高原で発見された新種のへびは、頭から尾にかけて１列に並んだマル（o）とバツ（x）からなる模様が特徴です。下図に例を示しますが、へびの模様は個体により様々です。

xxoooxxxoox

このへびは脱皮のときに、２つのマルが並んだ部分の間すべてが伸びることで成長します。新たに加わった箇所にはマル、バツ、マルが並んだ模様が付きます。

たとえば、長さ３のへびoooが１回脱皮すると、左から1番目と２番目、２番目と３番目のマルの間にマル、バツ、マルが並んだ模様が加わるので、脱皮後のへびはooxoooxooとなります（下線部が新たに加わった箇所です）。もう一回脱皮するとooxooxooxoooxooxooxoo となり、へびの長さは２１になります。

このへびの生態を研究しているあなたは、このへびが脱皮を繰り返したら、とてつもない長さになってしまうかもしれないと危惧しています。

へびの模様と脱皮の回数が与えられたとき、この回数だけ脱皮した後のへびの長さを求めるプログラムを作成せよ。

入力

入力は以下の形式で与えられる。

$L$ $N$
$snake$

１行目に脱皮する前の蛇の長さ$L$($1\leq L \leq 100$)と脱皮の回数$N$ ($1 \leq N \leq 50$)が与えられる。続く１行に脱皮する前のへびの模様を表す長さ$L$の文字列$snake$が与えられる。ただし$snake$は英小文字xとoからなる。

出力

へびの長さを１行に出力する。

入出力例

入力例１

3 2
ooo

出力例１

21

入力例２

3 4
xoo

出力例２

48

入力例３

13 30
xooxoooxxxoox

出力例３

12884901889

Solution in Ruby (judge verdict: Accepted)

l, n = gets.chomp.split.map(&:to_i)
x = 0
gets.chomp.split("").each_cons(2){|a, b| x += 1 if [a, b] == ["o", "o"]}
puts 3 * x * (2 ** n - 1) + l