// Complete the maxCircle function below. static int[] maxCircle(int[][] queries) { var ds = new DisjointSets(); var result = new int[queries.Length]; var max = 0; for (int index = 0; index < queries.Length; index++) { var left = ds.FindOrAdd(queries[index][0]); var right = ds.FindOrAdd(queries[index][1]); max = Math.Max(max, ds.Union(left, right)); result[index] = max; } return(result); }