main = do
    text <- getLine 
    num <- getLine 
    let num_i = read num :: Int
    let (firstNum, firstCheck) = check text False
    --     then putStrLn $ text ++ " " ++ (show num_i) ++ (show $ check text False)
--     putStrLn $ text ++ " " ++ (show num_i) ++ (show firstNum) ++ (show firstCheck) 
    if num_i == 1
         then putStrLn $ show firstNum
         else putStrLn $ show $ mainSecond text firstCheck firstNum num_i
    -- putStrLn (num1 + num2 + num3) ++ text


mainSecond :: [Char] -> Bool -> Int -> Int -> Int
-- 2回目が最後に変更した場合は、次は一つ目を変更しないパターンに戻る
mainSecond text firstCheck firstNum num = if secondCheck == True
            then firstNum * (num - halfNum) + secondNum * halfNum
            else firstNum + secondNum * (num - 1)
    where
        -- 最後の文字と最初が同じかどうか
        lastCheck = (text !! 0 == text !! (length text  -1))
        -- 最後の1文字を置換してなくて、最初と最後の文字が同じ場合は、最初の1文字目を置換する）
        (secondNum, secondCheck) = if firstCheck == False && lastCheck 
            then check text True
            else check text False
        halfNum = div num 2


-- check :: [Char] -> Maybe Int -> Int
-- 畳み込みたいけど、一回前の状態が必要だから厳しいな・・
-- 先頭の1文字を置換する、まず件数を1増やして、チェックは2文字目から行う
-- 最後の文字を置換したかどうかが知りたいために複雑になった。。
check :: [Char] -> Bool -> (Int, Bool)
check word skip 
    | skip == True = if wordlen == 1
        then (1, True)
        else checkLoop word wordlen 1 False 1
    | otherwise = if wordlen == 1
        then (0, False)
        else checkLoop word wordlen 0 False 0
    where wordlen = length word
--            let (checkNum, checkBool) =  ()
--            in (checkNum + 1, checkBool)

-- 一回前がTrueだったらFalseを返す
checkLoop :: [Char] -> Int -> Int -> Bool -> Int-> (Int, Bool)
checkLoop word wordlen index last lastNum
    -- 2文字のチェックだから +2 した数の一つ前までチェックする
    | (index + 2) >= wordlen = (thisNum, thisCheck)
    | otherwise =  checkLoop word wordlen (index + 1) thisCheck thisNum
    -- last がTrueだったら今回はチェックしない
    where thisCheck = if last == True 
                then False 
                else checkIndex word index
          thisNum = if thisCheck == True 
                    then 1 + lastNum
                    else lastNum

-- 指定文字と次の文字を比較する
checkIndex :: [Char] -> Int -> Bool
checkIndex word index = if word1 == word2
                        then True
                        else False
    where 
        word1 = word !! index 
        word2 = word !! (index + 1)

