using System; using static System.Console; using System.Linq; using System.Collections.Generic; using System.Security.Cryptography; class Program { static int NN => int.Parse(ReadLine()); static int[] NList => ReadLine().Split().Select(int.Parse).ToArray(); static int[][] NArr(long n) => Enumerable.Repeat(0, (int)n).Select(_ => NList).ToArray(); public static void Main() { Solve(); } static void Solve() { var n = NN; var p = NList; var pos = new int[n]; for (var i = 0; i < n; ++i) pos[p[i] - 1] = i + 1; var tmp = new int[n]; for (var i = 0; i < n; ++i) tmp[i] = i + 1; WriteLine("Yes"); var ans = new List(); for (var i = 0; i < n; ++i) { for (var j = i; j < n; ++j) { if (pos[i] == tmp[j]) { for (var k = j - 1; k >= i; --k) { (tmp[k], tmp[k + 1]) = (tmp[k + 1], tmp[k]); ans.Add(k + 1); } break; } } } WriteLine(ans.Count); if (ans.Count > 0) WriteLine(string.Join("\n", ans)); } }