using System; namespace a { class y { static void Main(string[] args) { var ss = Console.ReadLine().Split(); var n = int.Parse(ss[0]); var q = int.Parse(ss[1]); var a = new long[n + 1]; var c = new bool[n + 1]; var ans = ""; ss =Console.ReadLine().Split(); for (int i = 0; i < ss.Length; i++) { a[i + 1] = long.Parse(ss[i]); } for (int i = 0; i < q; i++) { ss = Console.ReadLine().Split(); switch (ss[0]) { case "1": if (int.Parse(ss[1]) < n) { c[int.Parse(ss[1]) + 1] = true; } break; case "2": if (int.Parse(ss[1]) < n) { c[int.Parse(ss[1]) + 1] = false; } break; case "3": if (int.Parse(ss[1]) < n + 1) { a[int.Parse(ss[1])]++; } break; case "4": long w = 0; if (int.Parse(ss[1]) < n + 1) { w = a[int.Parse(ss[1])]; var y = int.Parse(ss[1]) + 1; while (y < n + 1 && c[y]) { w += a[y]; y++; } y = int.Parse(ss[1]); while (c[y]) { w += a[int.Parse(ss[1]) - 1]; y--; } } ans += w.ToString() + "\n"; break; default: break; } } Console.WriteLine(ans); } } }