Sprint tap instead of sprint hold mobile

How do I make a sprint button in roblox be activated when you press sprint and deactivated when you press sprint again instead of holding the button

local userInput = game:GetService("UserInputService")

local players = game:GetService("Players")



local sprintSpeed = 24

local walkSpeed = 16 



local player = players.LocalPlayer



local function beginSprint(input, gameProcessed)

    if not gameProcessed then        

        if input.UserInputType == Enum.UserInputType.Keyboard then

            local keycode = input.KeyCode

            if keycode == Enum.KeyCode.C then 

                player.Character.Humanoid.WalkSpeed = sprintSpeed

            end

        end

    end

end



local function endSprint(input, gameProcessed)

    if not gameProcessed then

        if input.UserInputType == Enum.UserInputType.Keyboard then

            local keycode = input.KeyCode

            if keycode == Enum.KeyCode.LeftControl then

                player.Character.Humanoid.WalkSpeed = walkSpeed

            end

        end

    end

end



userInput.InputBegan:Connect(beginSprint)

userInput.InputEnded:Connect(endSprint)