You are the memory manager of a simple OS with no virtual memory.
Processes request contiguous blocks of physical memory. You decide where each one goes.
When a row fills completely, that memory is reclaimed (freed).
Goal: place as many processes as you can before running out of space. Watch how gaps build up over time.
Tip: Blocks always drop to the lowest available position in their column—you pick where, gravity does the rest.