C# Solution | Time: O(m*n), Memory: O(m*n) | Easy to understand, Dictionary
C#\npublic class Solution {\n    public IList<int> Intersection(int[][] nums) {\n        Dictionary<int, int> d = new Dictionary<int, int>();\n        for (int 
```C#\npublic class Solution {\n    public IList<int> Intersection(int[][] nums) {\n        Dictionary<int, int> d = new Dictionary<int, int>();\n        for (int i = 0; i < nums.Length; i++) {\n            for (int j = 0; j < nums[i].Length; j++) {\n                if (!d.ContainsKey(nums[i][j])) d[nums[i][j]] = 0;\n                d[nums[i][j]]++;\n            }\n        }\n        \n        List<int> ans = new List<int>();\n        foreach (var (num, count) in d) {\n            if (count == nums.Length) ans.Add(num);\n        }\n        \n        return ans.OrderBy(x => x).ToList();\n    }\n}\n```
[]