s = gets.chomp
k = gets.to_i

counts = []
pre = nil
cnt = 1

s.chars.each do |c|
  if pre == nil    # 文字を一つも取り出していなければ、取り出した値を格納する。
    pre = c
  elsif pre == c   # 1つ前の文字と比較して同じ文字の場合はカウントアップ
    cnt += 1
  else
    counts << cnt  # 同じ文字ではなくなるまでを1つの塊として考える。塊ごとの文字数
    pre = c
    cnt = 1
  end
end
counts << cnt
 
ans = 0

# 全て同じ文字の場合（1つの文字塊しかない場合）
## 文字数/2で変更回数が求まるので、文字数×K倍/2が答え
if counts.size == 1
  ans = counts[0] * k / 2
# 先頭文字と末尾文字が同じ場合
elsif s[0] == s[-1]
  # 先頭と末尾以外の合計値を答えに合算
  counts[1..-2].each { |t| ans += t / 2}
  ans *= k

  # 末尾と先頭で重なる部分を計算し、答えに合算
  ans += (counts[0] + counts[-1]) / 2 * (k - 1)
  
  # 先頭部分の合計値
  ans += counts[0] / 2
  
  # 末尾の合計値
  ans += counts[-1] / 2

# 先頭文字と末尾文字が異なる場合
## 単純に先頭、末尾の塊以外の合計値をk倍するだけ
else
  counts.each { |t| ans += t / 2 }
  ans = ans * k
end
puts ans