[<AutoOpen>]
module Program

open System

let read f = stdin.ReadLine() |> f
let reada f = stdin.ReadLine().Split() |> Array.map f
let reads f = stdin.ReadLine().Split() |> Array.toList |> List.map f

[<EntryPoint>]
let main _ =
    let [n;k] = reads int
    let ss = (read string).ToCharArray()

    // 不幸な人数を数える
    // 左端で左を向いている人と右端で右を向いている人は前に人がいないので不幸
    let x =
        match (ss.[0], ss.[n-1]) with
        | ('L', 'R') -> 2
        | ('L', _) -> 1
        | (_, 'R') -> 1
        | _ -> 0
    // 'RL'となっている2人はお互いに前の人が別の方向を向いているため不幸
    let y =
        Array.pairwise ss
        |> Array.sumBy (fun (x, y) -> if x = 'R' && y = 'L' then 1 else 0)
    // 全体の人数から不幸な人数を引くと幸福な人数が求まる
    let z = n - x - y * 2
    // 操作回数1回につき幸福にできる人数は最大2人
    let z' = z + k * 2

    // 全員同じ方向を向いているときの幸福な人数n-1を超えることはない
    printfn "%i" (min (n - 1) z')
    0