Given a matrix of dimension r*c where each cell in the matrix can have values 0, 1 or 2 which has the following meaning:

```
0: Empty cell
1: Cells have fresh oranges
2: Cells have rotten oranges
```

So we have to determine what is the minimum time required so that all the oranges become rotten. A rotten orange at index [i,j] can rot other fresh orange at indexes [i-1,j], [i+1,j], [i,j-1], [i,j+1] (up, down, left and right) in unit time. If it is impossible to rot every orange then simply return -1.

**Input:**

The first line of input contains an integer T denoting the number of test cases. Each test case contains two integers r and c, where r is the number of rows and c is the number of columns in the array a[]. Next line contains space separated r*c elements each in the array a[].

**Output:**

Print an integer which denotes the minimum time taken to rot all the oranges.(-1 if it is impossible).

**Constraints:**

1<=T<=100

1<=r<=100

1<=c<=100

0<=a[i]<=2

**Example:
Input:**

2

3 5

2 1 0 2 1 1 0 1 2 1 1 0 0 2 1

3 5

2 1 0 2 1 0 0 1 2 1 1 0 0 2 1

2

-1

Author: shashwat jain

SushmitaRaj | 61 |

svashish305 | 54 |

Mr_Bean | 49 |

deepaksh0607 | 48 |

MuhammadHasan | 43 |

kinetic | 317 |

yirans | 278 |

kevinyu102589 | 263 |

rutvik29 | 217 |

kyaba-kun | 206 |

akhayrutdinov | 4913 |

Ibrahim Nash | 4431 |

Quandray | 4261 |

sanjay05 | 3668 |

GB11 | 2857 |

Login to report an issue on this page.