private void ResetGroups () { int n = groups.Length; if (marks == null) marks = new Mark [n * 10]; for (int i = 0; i < n; ++ i) { groups [i] = i; marks [i].Start = -1; marks [i].End = -1; marks [i].Previous = -1; } mark_start = 0; mark_end = n; }