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 C (GCC 5.4.1) (judge verdict: Wrong Answer)

#include <stdio.h>
#include <string.h>

int main(void){
  char s[110];
  long long k;
  scanf("%s%lld", s, &k);

  long long N = strlen(s);
  long long right = 0, left = 0, i = 0;
  while(s[0] == s[i]){
    i++;
    right++;
  }
  i = N-1;
  while(s[N-1] == s[i]){
    i--;
    left++;
  }

  long long ans1 = 0;
  if(right == N){
    printf("%lld\n", N*k/2);
    return 0;
  }else if(s[N-1] == s[0]){
    ans1 = (right+left)/2*(k-1);
  }
  ans1 += right/2+left/2;

  long long ans2 = 0, cnt = 1;
  for (int i = right+1; i < N-left+1; i++) {
    if(s[i] != s[i-1] || i == N-left){
      ans2 += cnt/2*k;
      cnt = 1;
    }else{
      cnt++;
    }
  }

  printf("%lld\n", ans1+ans2);

  return 0;
}