You have been recently hired as a software engineer at a company specializing in data analysis. Your first task is to implement an algorithm that calculates the mean, median, and mode of a given list of integers. The mean is the average of all the numbers in the list, the median is the middle number when the list is sorted in ascending order, and the mode is the number that appears most frequently in the list. However, there is a catch - you are not allowed to use any built-in functions or libraries for calculating these statistics.

Write a function `calculate_stats(numbers)` that takes in a list of integers as a parameter and returns a dictionary containing the mean, median, and mode of the given numbers.

**Function Signature**
`def calculate_stats(numbers: List[int]) -> Dict[str, Union[float, int]]:`

**Input**
The `numbers` parameter is a list of at least one integer and at most 1000 integers (-10^9 ≤ numbers[i] ≤ 10^9).

**Output**
The function should return a dictionary with three keys: "mean", "median", and "mode". The values corresponding to each key should be the calculated mean (float), median (int), and mode (int) respectively.

**Examples**
Suppose the following inputs are given:
```python
numbers = [1, 2, 3, 4, 5, 5, 6]
```
The function should return:
```python
{
  "mean": 4.0,
  "median": 4,
  "mode": 5
}
```

Suppose the following inputs are given:
```python
numbers = [3, 1, 2, 2, 4, 3]
```
The function should return:
```python
{
  "mean": 2.5,
  "median": 2,
  "mode": 2
}
```

**Note**
In the first example, the mean is calculated as (1+2+3+4+5+5+6)/7 = 26/7 ≈ 4.0, the median is the middle number when the list is sorted in ascending order, which is 4, and the mode is 5 since it appears twice which is more than any other number.

In the second example, the mean is calculated as (3+1+2+2+4+3)/6 = 15/6 = 2.5, the median is 2 because it is the middle number, and the mode is 2 since it appears twice, which is more than any other number.
a33c214f-58f9-4987-90e6-368d9305c7e5
Вы недавно были наняты в качестве инженера программного обеспечения в компании, специализирующейся на анализе данных. Ваша первая задача - внедрить алгоритм, который рассчитывает средний, средний и режим данных чисел. Средний - это средний из всех чисел в списке, средний - это средний, когда список сортируется в подъемном порядке, а режим - это число, которое наиболее часто появляется в списке. Однако есть уловка - вам не разрешено использовать какие-либо встроенные функции или библиотеки для расчета этих статистических данных. Напишите функцию ` ≠ ≠ ≠ ≠ ≠ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
submitted
Вы недавно были наняты в качестве инженера программного обеспечения в компании, специализирующейся на анализе данных. Ваша первая задача - внедрить алгоритм, который рассчитывает средний, средний и режим данных чисел. Средний - это средний из всех чисел в списке, средний - это средний, когда список сортируется в подъемном порядке, а режим - это число, которое наиболее часто появляется в списке. Однако есть уловка - вам не разрешено использовать какие-либо встроенные функции или библиотеки для расчета этих статистических данных. Напишите функцию ` ≠ ≠ ≠ ≠ ≠ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞ ∞
{"source": "argilla/DistiCoder-dpo-binarized", "kind": "synthetic", "evolved_from": null}