Please solve the programming task below using a self-contained code snippet in a markdown code block.

You are given a 2D integer grid of size m x n and an integer x. In one operation, you can add x to or subtract x from any element in the grid.
A uni-value grid is a grid where all the elements of it are equal.
Return the minimum number of operations to make the grid uni-value. If it is not possible, return -1.
 
Please complete the following python code precisely:
```python
class Solution:
    def minOperations(self, grid: List[List[int]], x: int) -> int:
```