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 Perl (v5.18.2) (judge verdict: Wrong Answer)

sub main {
    chomp(my $S = <STDIN>);
    chomp(my $K = <STDIN>);
    print solver($S,$K);
}
main() unless caller;

sub solver {
    my ($S,$K) = @_;
    my @ar = split //, $S;
    my $fst = $ar[0];
    my $end = $ar[-1];
    my $idx = 0;
    my @ans;
    my $anser = 0;
    my $len = scalar @ar;
    if($len == 1){
        return 0 if $K == 1;
        return int($K/2);
    }
    if($S =~ /^(.)\1*$/){
        if($len%2 != 0 && $K > 1){
            return int($len * $K /2);
        }
        $anser = int($len/2);
        return $anser * $K;
    }
    for my $i(0 .. $len-1) {
        if(!defined $ans[$idx]) {
            $ans[$idx] = 1;
        }
        if($i < $len-1 && $ar[$i] eq $ar[$i+1]){
            $ans[$idx]++;
            next;
        } elsif($len > $i+1) {
            $idx++;
        }
    }
    for my $n(@ans) {
        next if $n == 1;
        $anser += int($n/2);
    }
    $anser *= $K;
    if($fst eq $end && ($ans[0] == 1 || $ans[-1] == 1)){
        $anser += $K-1;
    }
    return $anser;
}