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)
parseBigInt(x) = parse(BigInt, x)
parseFloat(x) = parse(Float64, x)
parseBigFloat(x) = parse(BigFloat, x)
parseMap(x::Array{SubString{String},1}) = map(parseInt, x)

function main()
    s=chomp(readline())
    n=length(s)
    k=parseInt(readline())
    res=1
    cnt=[]
    for i in 2:n+1
        if i==n+1 || s[i]!=s[i-1]
            push!(cnt,res)
            res=1
        else
            res+=1
        end
    end
    ans=sum(map(x->x÷2,cnt))*k
    if s[1]==s[end]
        if length(cnt)==1
            ans=sum(map(x->x,cnt))*k÷2
        else
            ans=sum(map(x->x÷2,cnt))*k
            ans-=(cnt[1]÷2+cnt[end]÷2-(cnt[1]+cnt[end])÷2)*(k-1)
        end
    end
    println(ans)
end
main()