System: affiche juste le code, pas d'explications !
User: 
Tu es un développeur python3 expérimenté, et tu dois concevoir un programme en python (avec des commentaires en français, sans utiliser de librairies externes, sans `if __name__=="__main__":`, avec type hints, et en privilégiant les algorythmes a complexité constante (O(1)) et/ou complexité linéaire (O(n))).
Le programme va recevoir les données en entrée sur la stdin, et doit répondre sur la stdout.
Fabrique moi un programme python qui résout le problème (énoncé en markdown) suivant :
-----------------------------------------------------
# From Sound to Words

After demonstrating your ability to discern the future, you are already assigned your first mission! The first person you'll be helping is an elderly man who is going to get lost in the forest in the next few hours. How do you know where he's going to get lost and send a rescue team right away?

You hear something in your vision! The poor man is trying to send a text message on a device from another time, but you can't see his screen clearly. The phone is clearly too old to be of any use nowadays...

But you are sure that if you concentrate, you will be able to find the message just from the sound of the keyboard! Write a program that finds the message from the sound of the keys to save the sailor!

## Data

### Input

**Line 1**: A sequence of characters containing only numbers from 0 to 9 and spaces.

The messages are typed on a standard telephone keypad (see image below): a quick press of the 1 key produces an `a`, 2 presses of the 1 key produce a `b`, 3 produce a `c`. Note that a press on the 0 key produces a space. A silence between two characters is represented in the input by a space.

[![Hd0D9J1.md.png](https://iili.io/Hd0D9J1.md.png)](https://freeimage.host/i/Hd0D9J1)


### Output

The translated message (all letters are in lower case).

The message contains at most 200 words, and contains only letters from `a` to `z` and spaces.


## Example

For the input :
```plaintext
111 1 55 0 888 555 777 0 666 22 1 2
```

The solution is:
```plaintext
can you read
```
Assistant: '''python
def decode_message(input: str) -> str:
    # Dictionnaire pour mapper les pressions de touches aux lettres
    key_mapping = {
        '1': 'abc',
        '2': 'def',
        '3': 'ghi',
        '4': 'jkl',
        '5': 'mno',
        '6': 'pqrs',
        '7': 'tuv',
        '8': 'wxyz',
        '0': ' '
    }
    
    # Initialisation de la variable pour stocker le message décodé
    decoded_message = ""
    
    # Séparation de l'entrée par des espaces pour traiter chaque groupe de pressions
    groups = input.split()
    
    for group in groups:
        # Récupération de la touche et du nombre de pressions
        key = group[0]
        count = len(group)
        
        # Vérification si la touche est dans le dictionnaire
        if key in key_mapping:
            # Calcul de l'index de la lettre à partir du nombre de pressions
            letters = key_mapping[key]
            index = (count - 1) % len(letters)  # Utilisation du modulo pour gérer les dépassements
            decoded_message += letters[index]
    
    return decoded_message

# Lecture de l'entrée standard et affichage du message décodé
import sys
input_data = sys.stdin.read().strip()
print(decode_message(input_data))'''
User: Avec l'input:
```111 1 55 0 888 555 777 0 666 22 1 2```
Je m'attendais à obtenir:
```can you read```
Mais j'ai obtenu:
```can yov read```, ce qui n'est pas le résultat attendu !
Assistant: