<think>
Okay, I need to implement the short_num function. Let's think about the requirements. The function should take an integer and return its short form. Numbers below 1000 are written as is. For 1000 or more, use 'k', and for a million or more, use 'm'. Also, it should keep one decimal place, rounded down.

Wait, but how do the abbreviations work? For example, 1,500 would be "1.5k", right? And 1,500,000 would be "1.5m". But what about numbers that are in the thousands but more than a million? Like 1,500,000 is 1.5 million, so 'm' is used. But if the number is 1,500,000.5, then it's 1.5m. But the problem says to take one decimal place, rounded down. So, for numbers over a million, the decimal is part of the value.

So the steps are: first, determine the appropriate abbreviation (k or m). Then, divide the number by the appropriate factor (1000 or 1,000,000) and round down to one decimal place.

Wait, but how to decide between k and m? Let's see. If the number is >= 1,000,000, then use 'm'. Otherwise, if it's >= 1,000, use 'k'. But what about numbers between 1,000 and 1,000,000? For example, 1,500,000 is 1.5m, but 1,500 is 1.5k. So the logic is: check if the number is >= 1,000,000, then use 'm', else check if it's >= 1,000, use 'k'.

But wait, the problem says "a thousand or more takes a k, and a million or more takes an m". So maybe the order is that if the number is >= 1,000,000, use 'm', else if >= 1,000, use 'k'. But what about numbers that are in the millions but less than a million? Wait, no. Wait, 1,000,000 is a million. So numbers >= 1,000,000 use 'm', else if >= 1,000 use 'k'.

So the first step is to determine the abbreviation. Then, divide the number by the appropriate factor (1000 or 1,000,000) and then take one decimal place, rounded down.

But how to handle the decimal? For example, 1234 would be 1.2k. Wait, 1234 divided by 1000 is 1.234, rounded down to one decimal is 1.2. So the function would return "1.2k".

Similarly, 1234567 would be 1.2m (since 1,234,567 divided by 1,000,000 is 1.234567, rounded down to one decimal is 1.2, so "1.2m").

But wait, what about numbers that are exactly 1,000,000? That would be 1.0m