Let's implement it for arbitrary sizes.