Problem:
Score : 300 points

Problem Statement

Given is a string S. Let T be the concatenation of K copies of S.
We can repeatedly perform the following operation: choose a character in T and replace it with a different character.
Find the minimum number of operations required to satisfy the following condition: any two adjacent characters in T are different.

Constraints

1 \leq |S| \leq 100

S consists of lowercase English letters.

1 \leq K \leq 10^9

K is an integer.

Input

Input is given from Standard Input in the following format:

S
K

Output

Print the minimum number of operations required.

Sample Input 1

issii
2

Sample Output 1

4

T is issiiissii. For example, we can rewrite it into ispiqisyhi, and now any two adjacent characters are different.

Sample Input 2

qq
81

Sample Output 2

81

Sample Input 3

cooooooooonteeeeeeeeeest
999993333

Sample Output 3

8999939997

Solution in Julia (0.5.0) (judge verdict: Accepted)

parseInt(x) = parse(Int, x)
parseMap(x::Array{SubString{String},1}) = map(parseInt, x)

function main()
	s = readline() |> chomp
	k = readline() |> parseInt
	l = length(s)
	fx = 0
	for i in 2:l
		if s[i]!=s[i-1]
			fx = 1
		end
	end
	if l==1
		println(k>>1)
	elseif fx == 0
		println((l*k)>>1)
	else
	h = 0
	b = 0
	x = 0
	f = 0
	tmp = 1
	for i in 2:l
		if s[i]!=s[i-1]
			if f==0
				f = 1
				h = i-1
			else
				x += tmp>>1
			end
			tmp = 1
		else
			tmp += 1
		end
	end
	b = tmp
	if s[1]!=s[l]
		x += h>>1
		x += b>>1
		println(x*k)
	else
		x=x*k
		x += ((h+b)>>1)*(k-1)
		x += h>>1
		x += b>>1
		println(x)
	end
end
end
main()