# Program to find starting index of the child who receives last balloon in Python?

Suppose we have n children standing in a circle, and they are waiting to get a balloon. The distribution is carried out starting with the kth child (first at index 0), and giving them a balloon they left the circle. Now every kth child gets a balloon going clockwise until there is only one child left that gets a balloon. So if we have n and k, we have to find the starting index of the child that receives the last balloon.

So, if the input is like n = 3 k = 2, then the output will be 1, in the first round, child 2 gets a balloon, and leave so the circle will be [0, 1]. In second round, child 0 gets a balloon, circle will be .

To solve this, we will follow these steps:

• arr := a new list from range 0 to n

• init := 0

• while size of arr > 1, do

• remove := (init + k) mod size of arr

• delete arr[remove]

• init := remove

• return arr

Let us see the following implementation to get better understanding:

## Example

Live Demo

class Solution:
def solve(self, n, k):
arr = list(range(0, n))
init = 0
while len(arr) > 1:
remove = (init + k) % len(arr)
del arr[remove]
init = remove
return arr

ob = Solution()
n = 3
k = 2
print(ob.solve(n, k))

## Input

3,2

## Output

1