This page is still under construction.

Parts of this page are still being built. What you see may change.

Redistricting

Time limit2sMemory limit512 MB

Summary
Given a string of H and G representing a line of cows, split it into contiguous districts of length at most K minimizing the number of districts where G outnumbers or ties H.
Level

Hard8 of 10

Topics
Dynamic programming, Prefix sum, Greedy, Array
Solved
No attempts yet

Problem

The cow mega-city Bovinopolis is redistricting. This is always a contentious political process between the two major cow breeds living there, Holsteins and Guernseys, since both breeds want to make sure they retain sufficient influence in the Bovinopolis government.

The greater metropolitan area of Bovinopolis consists of a line of NN pastures (1≤N≤3⋅1051 \leq N \leq 3 \cdot 10^5), each containing a single cow, which is either a Holstein or a Guernsey.

The government of Bovinopolis wants to divide the greater metropolitan area into some number of contiguous districts, so that each district contains at most KK pastures (1≤K≤N1 \leq K \leq N), and every pasture is contained in exactly one district. Since the government is currently controlled by Holsteins, they want to find a way to redistrict which minimizes the number of Guernsey-majority or tied districts. A district is tied if the number of Guernseys equals the number of Holsteins.

A concerned coalition of Guernseys is trying to figure out how much damage might be done by the government's redistricting. Help them figure out the worst-case minimum number of districts which are either Guernsey-majority or tied.

Input

The first line contains two space-separated integers NN and KK. The second line contains a string of length NN. Each character is either 'H' or 'G', for Holstein or Guernsey.

Output

Please output the minimum possible number of districts that are Guernsey-majority or tied.

Examples1

  1. Example 1

    Input
    7 2
    HGHGGHG
    
    Expected output
    3