Problem:
Score : 400 points

Problem Statement

There are N people standing in a queue from west to east.

Given is a string S of length N representing the directions of the people.
The i-th person from the west is facing west if the i-th character of S is L, and east if that character of S is R.

A person is happy if the person in front of him/her is facing the same direction.
If no person is standing in front of a person, however, he/she is not happy.

You can perform the following operation any number of times between 0 and K (inclusive):

Operation: Choose integers l and r such that 1 \leq l \leq r \leq N, and rotate by 180 degrees the part of the queue: the l-th, (l+1)-th, ..., r-th persons. That is, for each i = 0, 1, ..., r-l, the (l + i)-th person from the west will stand the (r - i)-th from the west after the operation, facing east if he/she is facing west now, and vice versa.

What is the maximum possible number of happy people you can have?

Constraints

N is an integer satisfying 1 \leq N \leq 10^5.

K is an integer satisfying 1 \leq K \leq 10^5.

|S| = N

Each character of S is L or R.

Input

Input is given from Standard Input in the following format:

N K
S

Output

Print the maximum possible number of happy people after at most K operations.

Sample Input 1

6 1
LRLRRL

Sample Output 1

3

If we choose (l, r) = (2, 5), we have LLLRLL, where the 2-nd, 3-rd, and 6-th persons from the west are happy.

Sample Input 2

13 3
LRRLRLRRLRLLR

Sample Output 2

9

Sample Input 3

10 1
LLLLLRRRRR

Sample Output 3

9

Sample Input 4

9 2
RRRLRLRLL

Sample Output 4

7

Solution in PHP7 (7.0.15) (judge verdict: Wrong Answer)

<?php
fscanf(STDIN, '%d %d', $n, $k);
fscanf(STDIN, '%s', $s);
$lh = $rh = 0;
$top = 0;
$top_s = $s[$top];
$lq = new SplPriorityQueue;
$rq = new SplPriorityQueue;
while($top < $n) {
    if ($top_s === 'L') $next_s = 'R';
    else $next_s = 'L';
    $next_top = strpos($s, $next_s, $top);
    if ($next_top === false) $next_top = $n;
    $p = $next_top - $top + 1;
    if ($top === 0 && $next_top === $n) $p -= 2;
    elseif ($top === 0 || $next_top === $n) $p--;
    if ($top_s === 'L') {
        $lq->insert([$top, $next_top - $top], $p);
        $lh += $next_top - $top - 1;
    } else {
        $rq->insert([$top, $next_top - $top], $p);
        $rh += $next_top - $top - 1;
    }
    $top_s = $next_s;
    $top = $next_top;
}
if ($lh >= $rh) $lf = true;
else $lf = false;
$i = 0;
while ($i < $k) {
    if ($lf) {
        if ($rq->count() <= 0) break;
        $x = $rq->extract();
        $s = substr_replace($s, str_repeat('L', $x[1]), $x[0], $x[1]);
    } else {
        if ($lq->count() <= 0) break;
        $x = $lq->extract();
        $s = substr_replace($s, str_repeat('R', $x[1]), $x[0], $x[1]);
    }
    $i++;
}
$ans = 0;
for ($i = 0; $i < $n - 1; $i++) {
    if ($s[$i + 1] === $s[$i]) $ans++;
}
echo $ans . PHP_EOL;