<p>You are given an <code>m x n</code><code>grid</code> where each cell can have one of three values:</p>
<ul>
<li><code>0</code> representing an empty cell,</li>
<li><code>1</code> representing a fresh orange, or</li>
<li><code>2</code> representing a rotten orange.</li>
</ul>
<p>Every minute, any fresh orange that is <strong>4-directionally adjacent</strong> to a rotten orange becomes rotten.</p>
<p>Return <em>the minimum number of minutes that must elapse until no cell has a fresh orange</em>. If <em>this is impossible, return</em><code>-1</code>.</p>