Big O hacks
• 179 min read
public class BubbleSort {
public static void main(String[] args) {
int[] array = {5, 3, 8, 4, 2};
// prints the original array
System.out.println("Original Array:");
printArray(array);
// sorts the array using bubble sort
bubbleSort(array);
// prints the sorted array
System.out.println("Sorted Array:");
printArray(array);
}
public static void bubbleSort(int[] array) {
int n = array.length;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (array[j] > array[j+1]) {
// swaps array[j] and array[j+1]
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
public static void printArray(int[] array) {
for (int i = 0; i < array.length; i++) {
System.out.print(array[i] + " ");
}
System.out.println();
}
}
BubbleSort.main(null);
Original Array: 5 3 8 4 2 Sorted Array: 2 3 4 5 8
public class Selection {
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
}
public static void main(String[] args) {
int[] array = {5, 3, 8, 4, 2};
selectionSort(array);
System.out.println(Arrays.toString(array)); // [2, 3, 4, 5, 8]
}
}
Selection.main(null);
[2, 3, 4, 5, 8]
public class MergeSort {
public static void mergeSort(int[] arr, int left, int right) {
if (left < right) {
int mid = (left + right) / 2;
mergeSort(arr, left, mid);
mergeSort(arr, mid + 1, right);
merge(arr, left, mid, right);
}
}
public static void merge(int[] arr, int left, int mid, int right) {
int[] temp = new int[right - left + 1];
int i = left, j = mid + 1, k = 0;
while (i <= mid && j <= right) {
if (arr[i] < arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
}
}
while (i <= mid) {
temp[k++] = arr[i++];
}
while (j <= right) {
temp[k++] = arr[j++];
}
for (i = left; i <= right; i++) {
arr[i] = temp[i - left];
}
}
public static void main(String[] args) {
int[] arr = {5, 4, 3, 2, 1};
mergeSort(arr, 0, arr.length - 1);
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i] + " ");
}
}
}
MergeSort.main(null);
1 2 3 4 5
import java.util.ArrayList;
public class sortTimes {
// selection sort
public static void selectionSort(int[] arr) {
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
}
}
}
// bubble sort
public static void bubbleSort(int[] array) {
int n = array.length;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
if (array[j] > array[j+1]) {
// swaps array[j] and array[j+1]
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
}
}
// merge sort
public static void mergeSort(int[] arr, int left, int right) {
if (left < right) {
int mid = (left + right) / 2;
mergeSort(arr, left, mid);
mergeSort(arr, mid + 1, right);
merge(arr, left, mid, right);
}
}
public static void merge(int[] arr, int left, int mid, int right) {
int[] temp = new int[right - left + 1];
int i = left, j = mid + 1, k = 0;
while (i <= mid && j <= right) {
if (arr[i] < arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
}
}
while (i <= mid) {
temp[k++] = arr[i++];
}
while (j <= right) {
temp[k++] = arr[j++];
}
for (i = left; i <= right; i++) {
arr[i] = temp[i - left];
}
}
// insertion sort
public static void insertionSort(int[] arr) {
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
if (j + 1 != i) {
arr[j + 1] = key;
}
}
}
public static void main(String[] args) {
Integer [] integerArray = {}; // create an array
ArrayList<Integer> integerArrayList = new ArrayList<Integer> (Arrays.asList(integerArray)); // convert array to array list
// input 5000 random integers between 0 and 10,000 into arrayList
for (int i = 0; i < 5000; i++) {
Random random = new Random();
int rn = random.nextInt(10000);
integerArrayList.add(rn);
}
int [] arr0 = integerArrayList.stream().mapToInt(i -> i).toArray();
System.out.println(Arrays.toString(arr0));
ArrayList<Integer> arrST = new ArrayList<Integer>();
ArrayList<Integer> arrBT = new ArrayList<Integer>();
ArrayList<Integer> arrMT = new ArrayList<Integer>();
ArrayList<Integer> arrIT = new ArrayList<Integer>();
int arr1[] = Arrays.copyOf(arr0, 5000);
int arr2[] = Arrays.copyOf(arr0, 5000);
int arr3[] = Arrays.copyOf(arr0, 5000);
int arr4[] = Arrays.copyOf(arr0, 5000);
for (int i = 0; i < 12; i++) {
// selection sort
long selectionStart = System.nanoTime(); // get time before selection sort
selectionSort(arr1);
long selectionEnd = System.nanoTime(); // get time after selection sort
double selectionTotalTime = selectionEnd - selectionStart; // time to sort
arrST.add((int)selectionTotalTime);
// bubble sort
long bubbleStart = System.nanoTime(); // get time before bubble sort
bubbleSort(arr2);
long bubbleEnd = System.nanoTime(); // get time after bubble sort
double bubbleTotalTime = bubbleEnd - bubbleStart; // time to sort
arrBT.add((int)bubbleTotalTime);
// merge sort
long mergeStart = System.nanoTime(); // get time before merge sort
mergeSort(arr3, 0, arr3.length - 1);
long mergeEnd = System.nanoTime(); // get tune after merge sort
double mergeTotalTime = mergeEnd - mergeStart; // time to sort
arrMT.add((int)mergeTotalTime);
// insertion sort
long insertionStart = System.nanoTime(); // get time before merge sort
insertionSort(arr4);
long insertionEnd = System.nanoTime(); // get tune after merge sort
double insertionTotalTime = insertionEnd - insertionStart; // time to sort
arrIT.add((int)insertionTotalTime);
}
System.out.println("Selection Times: " + arrST);
System.out.println("Bubble Times: " + arrBT);
System.out.println("Merge Times: " + arrMT);
System.out.println("Insertion Times: " + arrMT);
//System.out.println("Sorted: " + Arrays.toString(arr4));
}
}
sortTimes.main(null);
[4312, 3760, 7194, 3568, 8798, 8854, 6743, 416, 9571, 3929, 6613, 5189, 8132, 6472, 1027, 323, 595, 5944, 4905, 9189, 2728, 5551, 1062, 158, 363, 7731, 4282, 5438, 874, 4644, 6984, 9766, 9620, 1232, 8069, 6910, 3430, 3389, 1738, 6536, 358, 7523, 9016, 5903, 7034, 4670, 4043, 2896, 6273, 2784, 2276, 2520, 9573, 6075, 9334, 8324, 3682, 293, 314, 775, 5024, 6278, 2685, 6936, 3648, 8948, 1764, 635, 6009, 4473, 9208, 7866, 4121, 1392, 228, 9938, 4405, 1550, 4014, 4585, 4395, 9394, 7439, 8695, 3626, 775, 2481, 6165, 4601, 8644, 8356, 3143, 1763, 1161, 7553, 6640, 4212, 9390, 6221, 8226, 3766, 8348, 1205, 1325, 4463, 3785, 4655, 7928, 3318, 7182, 5391, 5218, 8320, 4019, 128, 9278, 251, 1426, 6063, 3459, 5486, 9500, 2505, 6142, 6569, 3687, 6782, 3524, 4562, 851, 1773, 8086, 2894, 8968, 9185, 6136, 5452, 5590, 9493, 5762, 3773, 9964, 2014, 9008, 7096, 7085, 1876, 769, 4000, 3189, 7625, 5634, 6946, 4558, 8035, 154, 4659, 9830, 1140, 6746, 9807, 4781, 6857, 6723, 3890, 9537, 2175, 3889, 5786, 7043, 2387, 181, 883, 9450, 1766, 9123, 9510, 8713, 6424, 5688, 7375, 8467, 6262, 2069, 7630, 731, 8970, 3480, 3009, 1510, 8280, 1596, 3325, 4708, 1255, 829, 276, 548, 4903, 9719, 1457, 903, 2951, 812, 6329, 6347, 474, 6225, 638, 2396, 1134, 46, 4237, 4640, 2897, 1395, 6139, 992, 7880, 226, 6221, 4055, 2232, 6763, 1542, 3254, 3112, 121, 7875, 1552, 6762, 4353, 8572, 4396, 3458, 8546, 8016, 645, 7232, 5549, 6105, 1198, 5961, 9686, 5832, 3156, 7495, 8606, 8248, 2915, 3747, 1296, 4111, 397, 5375, 6325, 4222, 431, 2392, 4481, 6638, 8810, 7659, 7311, 8266, 5541, 8935, 7199, 6409, 3073, 7360, 1323, 5603, 1926, 7605, 5334, 9921, 1074, 9918, 4023, 417, 2657, 9487, 2629, 4286, 9241, 2498, 8534, 2511, 3057, 2753, 9132, 1386, 9846, 6061, 1601, 8437, 2907, 7177, 521, 3605, 2816, 5662, 4478, 975, 7218, 315, 2153, 4672, 9300, 9577, 7313, 2471, 5585, 2359, 9629, 7882, 9227, 1873, 9170, 7298, 3688, 6764, 2242, 3431, 647, 1704, 5449, 6742, 8313, 7544, 7517, 1959, 9873, 9953, 6990, 6444, 3129, 2477, 7996, 5952, 8193, 3763, 8663, 6379, 2962, 9180, 2912, 3265, 9268, 1189, 48, 1049, 5456, 1204, 498, 1477, 9982, 5910, 9072, 2391, 5812, 4995, 2343, 4365, 9229, 5533, 2703, 6556, 5716, 2153, 9341, 3244, 8905, 5568, 5707, 59, 2769, 800, 5283, 9516, 6770, 3543, 5293, 5295, 2155, 4984, 7642, 6509, 5175, 1259, 8508, 1923, 1248, 3577, 2258, 2752, 2474, 104, 8688, 9531, 8109, 850, 2926, 6885, 5100, 1173, 1777, 1323, 2024, 2033, 4647, 7003, 3048, 2574, 2236, 7441, 5869, 1137, 8482, 9542, 7982, 2362, 9520, 8223, 3470, 8071, 2034, 4910, 916, 4170, 1855, 821, 8803, 1040, 5883, 4885, 3744, 2355, 8265, 4091, 426, 319, 5047, 7590, 9429, 9174, 9902, 719, 6439, 1362, 4866, 1835, 2047, 3590, 3172, 8765, 8191, 9912, 812, 5935, 9035, 5814, 441, 1010, 1977, 7926, 2532, 749, 3849, 760, 2945, 2976, 7646, 3156, 6324, 2463, 6142, 8430, 4925, 4609, 6033, 7790, 9150, 3136, 858, 9919, 7824, 6234, 4572, 51, 4777, 1294, 1997, 7445, 5045, 7919, 5532, 8217, 8289, 8733, 9419, 4957, 213, 7769, 8256, 1318, 627, 3085, 1395, 5415, 7510, 3078, 4424, 7272, 2159, 9187, 9827, 1486, 3609, 3769, 737, 662, 8812, 7108, 9683, 4883, 9729, 2209, 1763, 6644, 6521, 6197, 7179, 296, 2527, 9289, 7766, 7003, 51, 1375, 2299, 7340, 8120, 9819, 8393, 2916, 7258, 9987, 5037, 5733, 3845, 4190, 2024, 1244, 1382, 4060, 3622, 7420, 5730, 7443, 8588, 814, 706, 389, 5615, 2695, 8547, 9731, 1088, 5030, 804, 9362, 6342, 8574, 9060, 9268, 8508, 5668, 2478, 5437, 5274, 8122, 3031, 8549, 9814, 3356, 6999, 5907, 2297, 6436, 4135, 491, 8884, 1432, 6108, 298, 9669, 1974, 7321, 1663, 2100, 8972, 2932, 3224, 4821, 3037, 959, 8259, 9874, 5616, 6466, 4028, 3896, 2559, 7473, 4046, 2512, 6030, 5233, 9229, 3706, 931, 403, 78, 6938, 7089, 3674, 7139, 3762, 3369, 3333, 2490, 5025, 5567, 6367, 6052, 5042, 1300, 9183, 5114, 3885, 9671, 2289, 7544, 5168, 8594, 3029, 2164, 6124, 4213, 8928, 3194, 5037, 2967, 1189, 4397, 5893, 3723, 4723, 7467, 6784, 7648, 2021, 2819, 8604, 3990, 3422, 1634, 2423, 8101, 9920, 5979, 2216, 3635, 4785, 756, 4011, 926, 9870, 5249, 9731, 2567, 7560, 2707, 6425, 3059, 5528, 7905, 2325, 5260, 7385, 3281, 8917, 5684, 2663, 2901, 761, 356, 9472, 5765, 5994, 4443, 9147, 5681, 3296, 1056, 2679, 3971, 5027, 4680, 1336, 6791, 6385, 3756, 1466, 7696, 8905, 5131, 899, 3669, 9709, 8709, 2526, 3934, 900, 6180, 7757, 7992, 5863, 5191, 7128, 7445, 8370, 2431, 6235, 5409, 7058, 6030, 4435, 3246, 2480, 1509, 9319, 7153, 2987, 4471, 9607, 2469, 7892, 9363, 9320, 4121, 2904, 8621, 9950, 4999, 5821, 4762, 1117, 1611, 9433, 7655, 6780, 9140, 6160, 1179, 8570, 8580, 8307, 3493, 8772, 6816, 8398, 3771, 705, 8065, 2560, 638, 9455, 9546, 6869, 837, 3321, 8362, 8541, 5872, 6149, 1890, 4590, 5453, 1223, 5626, 8533, 48, 5503, 3712, 542, 2413, 3322, 8104, 9181, 7529, 4230, 7723, 5088, 9848, 698, 1931, 4032, 4399, 4462, 1472, 1313, 4558, 7857, 7858, 8240, 4837, 8974, 2037, 5875, 9905, 6612, 4749, 6486, 9151, 676, 8763, 5102, 7620, 1604, 4081, 7063, 1319, 2287, 4966, 5751, 6911, 8229, 5451, 8589, 390, 9447, 3915, 4472, 7811, 9886, 114, 1404, 1871, 8606, 1134, 4024, 8401, 7211, 4931, 1229, 3834, 5930, 6427, 3545, 5231, 4158, 635, 6479, 8073, 7589, 4134, 2400, 6265, 4341, 8922, 8626, 1336, 2538, 7220, 6594, 9949, 2211, 1183, 6601, 4929, 5940, 1676, 66, 2707, 8135, 6098, 2840, 7254, 8253, 5149, 1003, 8856, 773, 7213, 5381, 4502, 6279, 5389, 2931, 2511, 6835, 1020, 9804, 4453, 1423, 8433, 4677, 3570, 6429, 5540, 7192, 808, 9185, 7726, 761, 9881, 2495, 5413, 2366, 2439, 2432, 5555, 6794, 9454, 6347, 4184, 3747, 7298, 7047, 50, 3590, 7225, 205, 5034, 8176, 6742, 130, 1770, 1195, 447, 4246, 7390, 3352, 5062, 5926, 6326, 2216, 6293, 1794, 3563, 1733, 5256, 6976, 7654, 5462, 7803, 8431, 2856, 1543, 671, 5552, 6627, 129, 5890, 3834, 192, 4423, 3655, 6471, 1070, 8633, 5855, 4458, 9109, 9381, 8865, 8398, 4982, 9557, 8894, 3672, 3466, 3796, 1304, 7551, 8050, 6313, 4439, 9288, 4793, 1679, 803, 2185, 4760, 5870, 1317, 9873, 8245, 8354, 5553, 6789, 1895, 7588, 7299, 9476, 5714, 9817, 2130, 4929, 3680, 2916, 354, 4688, 4038, 7045, 876, 8927, 8545, 5468, 7730, 1212, 6630, 8820, 9375, 3642, 6446, 6309, 2665, 2372, 4919, 8731, 1790, 129, 8160, 5486, 6723, 1154, 7474, 3709, 7147, 8131, 311, 3121, 7494, 9695, 5851, 9091, 9089, 1778, 3390, 4008, 5854, 8522, 2485, 2322, 2861, 2929, 2920, 242, 9533, 9260, 4252, 5284, 9241, 4714, 6190, 2049, 321, 3641, 5922, 1054, 4087, 9232, 1138, 370, 9983, 255, 1723, 1572, 1358, 3796, 8222, 1978, 1691, 9372, 2590, 9889, 723, 2296, 5350, 6606, 2479, 4114, 6815, 8287, 4898, 2538, 9022, 5947, 1647, 7343, 6103, 1614, 3129, 2485, 8413, 5876, 5143, 514, 4137, 8950, 9790, 7471, 612, 6055, 8126, 4870, 314, 1600, 6261, 696, 4633, 6330, 3791, 4992, 8855, 7903, 1962, 6049, 7836, 9143, 3133, 1894, 2168, 1363, 5701, 9895, 6253, 6179, 3937, 697, 8545, 2287, 4490, 6942, 819, 1728, 8737, 2267, 7255, 1004, 6234, 3679, 4647, 409, 9691, 571, 6140, 9554, 7294, 1260, 8826, 2357, 4057, 4831, 1927, 1758, 9944, 3307, 5925, 7868, 7895, 6306, 5918, 6302, 190, 6306, 5690, 9052, 9167, 9781, 1191, 6479, 4415, 6742, 3825, 6676, 8401, 1220, 4473, 8278, 526, 8633, 4163, 4015, 8098, 9436, 5075, 6676, 6645, 1423, 8958, 6518, 618, 1864, 8091, 9489, 4923, 5300, 7782, 4557, 3786, 4541, 4331, 7837, 6571, 4982, 7844, 7572, 6234, 3641, 2100, 8383, 8711, 4143, 958, 2647, 8879, 431, 1661, 1092, 3890, 6891, 7317, 9304, 2634, 2374, 3812, 7010, 9868, 5085, 5133, 3762, 3965, 8889, 479, 586, 5325, 5815, 2986, 1211, 4308, 7360, 4606, 9349, 3245, 7625, 1262, 5286, 366, 5293, 4044, 9247, 6274, 325, 5169, 8945, 6895, 6841, 1418, 6148, 2041, 5235, 915, 3367, 8504, 5188, 1949, 8472, 9252, 970, 9944, 6080, 9107, 6394, 5203, 7337, 2916, 2951, 6084, 9582, 8970, 4962, 7744, 3240, 7180, 2760, 9963, 8472, 2667, 9980, 5136, 8110, 329, 560, 2208, 9276, 4001, 6190, 3083, 2552, 9329, 4729, 3473, 8517, 4983, 3782, 9954, 7706, 4632, 5892, 3492, 9915, 5701, 6510, 2210, 4858, 2116, 2634, 5202, 4526, 7670, 9811, 8127, 3468, 7336, 8229, 457, 1182, 603, 3318, 1754, 9418, 3571, 4498, 9606, 4045, 2144, 9362, 9097, 5579, 5783, 8533, 999, 5440, 306, 5250, 7390, 8970, 64, 3351, 6430, 6807, 3332, 9485, 6707, 9208, 3215, 5179, 701, 5024, 5410, 8293, 9592, 1377, 6908, 7481, 5120, 5540, 926, 7807, 4266, 95, 3948, 1146, 7134, 6187, 7331, 9308, 2468, 9072, 8326, 9795, 2674, 7530, 8294, 6671, 9053, 4420, 5746, 2366, 1093, 5425, 4322, 8800, 3621, 8140, 8807, 4419, 4028, 7882, 3422, 6862, 1475, 3191, 3394, 3485, 5452, 5589, 1079, 319, 5021, 7007, 5480, 5578, 1523, 1111, 328, 1047, 2912, 8877, 1201, 7253, 5418, 1601, 1737, 3108, 8069, 8490, 4517, 5032, 2629, 9616, 5844, 8970, 4167, 8200, 5656, 1284, 5313, 1379, 9372, 6009, 4232, 1286, 5941, 8770, 309, 8146, 5269, 3234, 627, 2470, 9605, 6020, 5187, 8942, 7703, 9235, 4872, 6509, 2715, 8650, 6797, 9424, 3682, 7112, 5368, 1723, 1625, 2075, 5003, 6808, 2621, 8270, 7439, 3003, 7370, 7112, 8152, 2, 7415, 4177, 736, 4823, 4002, 5569, 3353, 4341, 2018, 4977, 341, 4098, 2628, 7450, 456, 7876, 5052, 2349, 9893, 5373, 4198, 3174, 7273, 5511, 5578, 3498, 4517, 6839, 4562, 7088, 9834, 5119, 8517, 9207, 8742, 284, 8350, 7879, 6053, 1144, 4144, 7909, 6457, 9327, 7363, 2110, 8879, 866, 3940, 1394, 5452, 5672, 1178, 3826, 502, 2675, 2427, 1228, 7580, 2177, 6350, 3620, 2938, 7594, 8093, 1098, 4173, 3407, 3623, 9820, 3391, 4180, 4497, 1477, 2203, 9933, 7897, 9124, 6256, 1747, 4396, 460, 3895, 7826, 6885, 9834, 4920, 7764, 5193, 9101, 9441, 2805, 414, 3023, 638, 277, 3328, 9859, 374, 6961, 9445, 2268, 5926, 6497, 7663, 7847, 994, 2598, 973, 7193, 4460, 8085, 7982, 1498, 8971, 4339, 1884, 3144, 1423, 178, 1266, 7872, 2546, 4494, 6193, 3242, 729, 6026, 6113, 3702, 6348, 8702, 8415, 458, 5628, 6318, 3733, 9030, 8380, 8663, 1845, 8153, 2500, 8825, 4556, 9127, 6973, 2114, 1790, 4282, 5713, 2862, 1073, 1913, 8096, 1576, 4960, 2761, 4173, 4847, 7326, 996, 5572, 7418, 2736, 1741, 9983, 8400, 9245, 1298, 6446, 5794, 9979, 3371, 8924, 7056, 9220, 9988, 4993, 8675, 4085, 7961, 2906, 5003, 9442, 8425, 23, 4472, 6851, 1956, 4665, 76, 9615, 272, 862, 5900, 9930, 8158, 3395, 793, 2403, 203, 692, 7869, 9293, 5367, 559, 6066, 9856, 6789, 5573, 1376, 3812, 5745, 4761, 9024, 4584, 6594, 2833, 965, 1089, 9188, 286, 7286, 337, 1840, 7289, 6037, 2802, 1752, 6007, 3964, 5141, 9095, 5778, 6959, 3846, 9033, 6596, 8321, 7812, 855, 5144, 3711, 3681, 9627, 9210, 9926, 3258, 3184, 4311, 6757, 5997, 7725, 7615, 535, 4185, 2826, 4389, 2394, 9605, 6789, 6898, 275, 8069, 9143, 6238, 1776, 1946, 8279, 2303, 1716, 6804, 8755, 3417, 8207, 2438, 9972, 6247, 5868, 4025, 3577, 6224, 7231, 7499, 4515, 5136, 5790, 5001, 6318, 5454, 7184, 2470, 9379, 6400, 2721, 3906, 5711, 2482, 9077, 7939, 2574, 7219, 9253, 1170, 8885, 9361, 4386, 4056, 4584, 4116, 7214, 980, 7399, 138, 3708, 1426, 3181, 5778, 8903, 1363, 7964, 3146, 7815, 8384, 9393, 8530, 3926, 9003, 1550, 4857, 857, 6032, 336, 5572, 3200, 6871, 4801, 9235, 1340, 205, 5960, 73, 9153, 665, 9434, 176, 2392, 4149, 6905, 4250, 4445, 9875, 5320, 7190, 2635, 4432, 6211, 2412, 1613, 3812, 1360, 5220, 9646, 5532, 7388, 6570, 8464, 7829, 7273, 8, 8183, 2390, 6724, 2812, 6140, 6386, 3484, 8974, 1533, 150, 6076, 3699, 2127, 7947, 995, 4822, 4017, 8952, 6708, 5525, 3577, 8890, 3421, 3342, 3028, 5642, 968, 2413, 8866, 8818, 6135, 5802, 4773, 549, 9606, 3660, 2844, 6757, 2603, 4641, 42, 9601, 4713, 3751, 3927, 5896, 6234, 7577, 7039, 7068, 2429, 3580, 5572, 3796, 3505, 2473, 2492, 910, 3969, 5244, 3056, 1372, 3433, 323, 7221, 6198, 9013, 2221, 2922, 6300, 6195, 5867, 1943, 7963, 439, 6304, 2215, 1182, 1032, 9068, 8223, 5926, 8651, 9962, 9421, 146, 6775, 1999, 7679, 4241, 2220, 1437, 1, 5029, 3054, 7299, 1674, 1307, 641, 8704, 9632, 1379, 7559, 8529, 1940, 2916, 6013, 3260, 7799, 5969, 6991, 8088, 5525, 5867, 7120, 2393, 3051, 768, 9086, 3508, 4162, 6826, 6930, 8216, 4756, 9804, 446, 5639, 3886, 7517, 7795, 7107, 9083, 4754, 3686, 4886, 7218, 9831, 4025, 9873, 6007, 454, 8346, 8527, 7425, 1632, 3782, 7835, 3331, 9140, 5062, 5348, 9208, 7709, 1510, 7665, 9750, 1818, 2478, 5142, 379, 5465, 9648, 3183, 5679, 7231, 8088, 7389, 9375, 4627, 5656, 9908, 9021, 4114, 3406, 2235, 3552, 1261, 5776, 2808, 7526, 8064, 5624, 1567, 1891, 5802, 981, 4854, 5334, 7898, 9322, 9482, 3811, 4271, 5917, 9160, 4490, 9949, 4534, 5724, 4512, 6446, 6558, 1575, 7053, 408, 8891, 1925, 6253, 2697, 6962, 6994, 9377, 6249, 8589, 4323, 27, 5052, 550, 233, 5458, 7400, 9160, 21, 690, 8721, 4578, 2349, 3008, 6047, 4414, 9524, 6872, 3093, 8416, 1787, 8226, 4561, 2110, 5599, 1760, 6338, 7806, 4453, 4244, 4855, 4532, 2914, 5327, 3725, 2781, 5992, 5603, 9297, 609, 3854, 4093, 6605, 1191, 6966, 71, 8271, 9831, 6832, 2017, 4087, 200, 4275, 1083, 1328, 3737, 6070, 5049, 8981, 7445, 6173, 4531, 9910, 1718, 6616, 9002, 4203, 4749, 3965, 8557, 7252, 9290, 5380, 433, 6343, 1432, 8821, 8257, 5907, 1863, 3940, 4918, 3729, 3686, 1934, 3502, 5768, 7261, 8843, 5464, 1066, 4339, 6349, 7863, 6437, 7409, 1183, 475, 4633, 1206, 7444, 8150, 6962, 6407, 3844, 511, 9056, 3985, 7720, 7351, 6059, 9801, 4027, 221, 1930, 7369, 1280, 9403, 5264, 435, 4518, 3574, 7840, 757, 1045, 4634, 5726, 9429, 4648, 8220, 8044, 6614, 2942, 4990, 3270, 2650, 1244, 6079, 694, 4568, 6656, 3626, 1693, 8592, 3613, 5848, 3780, 9456, 4612, 75, 1634, 5934, 266, 9573, 8643, 9679, 6959, 3907, 6416, 9166, 6863, 7327, 7949, 529, 1056, 6387, 4598, 7532, 8858, 5727, 2030, 2563, 9023, 8041, 433, 5816, 1404, 8362, 4846, 661, 9547, 4435, 3206, 2957, 8536, 2842, 7412, 5242, 9739, 6837, 3528, 3777, 4752, 7399, 4481, 6272, 5546, 6544, 3023, 2437, 1972, 1060, 6684, 9547, 500, 8568, 8409, 3695, 9037, 2335, 2413, 3699, 2493, 603, 68, 2132, 1965, 5131, 9322, 4121, 1030, 3286, 638, 4925, 3800, 66, 1454, 4166, 2462, 8652, 2468, 8197, 1053, 695, 3133, 3365, 3458, 3256, 7674, 8785, 8035, 2533, 3555, 3786, 1951, 7230, 3, 5318, 5903, 3849, 5140, 5203, 303, 3264, 3076, 1767, 4087, 2729, 3317, 1116, 1686, 9936, 9336, 5576, 5782, 9822, 3450, 5757, 6489, 7190, 6564, 2745, 4459, 3565, 4938, 8105, 6416, 2653, 5061, 4989, 3895, 1361, 2636, 7372, 4954, 3487, 1629, 5516, 5556, 2629, 4448, 5732, 3114, 4852, 788, 4747, 3456, 2569, 955, 9954, 179, 9844, 8330, 8275, 1922, 4035, 6187, 5396, 9129, 3522, 7549, 296, 8121, 8493, 9606, 4465, 8791, 3218, 8168, 292, 4139, 8935, 8413, 5413, 1013, 7987, 4755, 7054, 7619, 8576, 768, 7555, 1025, 5208, 7563, 3369, 9210, 6672, 3294, 396, 9025, 7394, 2278, 4332, 2436, 490, 7828, 6405, 6360, 9792, 9501, 3838, 9358, 3282, 9853, 6089, 2252, 5841, 4649, 5942, 5451, 328, 920, 4354, 4360, 3269, 8036, 2069, 1395, 3537, 4288, 2075, 2819, 8473, 7183, 3190, 153, 6239, 3000, 4206, 5302, 3171, 6667, 3175, 2973, 3500, 1294, 2767, 8798, 2858, 1087, 581, 6997, 8270, 7670, 7877, 107, 6406, 9819, 7562, 4086, 9911, 8483, 6319, 5379, 7284, 551, 4155, 1480, 3889, 7380, 4397, 9845, 4079, 3882, 8214, 2189, 6631, 1910, 7313, 8129, 30, 668, 2584, 3701, 7368, 1854, 8957, 7414, 8117, 5671, 2914, 1249, 5825, 9208, 2017, 9442, 5138, 770, 3970, 1958, 4921, 2922, 8219, 8820, 7411, 508, 9145, 5120, 4864, 588, 5686, 6166, 4365, 4965, 615, 2318, 925, 8148, 4467, 5466, 2312, 2720, 4294, 3776, 9411, 8170, 5516, 1132, 1015, 8400, 4859, 1332, 291, 8681, 4955, 310, 7746, 7715, 8000, 3761, 5576, 1870, 2337, 4381, 2165, 7546, 6740, 2389, 8388, 5225, 7731, 450, 3432, 8676, 5072, 8706, 3058, 1698, 7834, 781, 9244, 5288, 5142, 4626, 6515, 2122, 7477, 9840, 805, 4508, 5517, 4953, 988, 6673, 9391, 6200, 9043, 8181, 8104, 2841, 9969, 9186, 5280, 806, 628, 1139, 4174, 609, 9259, 3500, 46, 9962, 1845, 3866, 5937, 9704, 2148, 349, 4292, 1947, 2, 2903, 9530, 5447, 3086, 3098, 1839, 3602, 9626, 4943, 5281, 9002, 1479, 6430, 9405, 6993, 5451, 5556, 4079, 3415, 9917, 5162, 6540, 4777, 7030, 9650, 2250, 2138, 6033, 1068, 9458, 4871, 9859, 4237, 3960, 2457, 6976, 5329, 3672, 6950, 8363, 4970, 2515, 3265, 5801, 3640, 5480, 1838, 7830, 802, 7251, 5434, 2351, 2876, 157, 5175, 3355, 9498, 5018, 4675, 5182, 2547, 542, 7241, 6882, 3475, 7334, 7019, 2076, 7043, 8685, 7411, 7623, 7206, 2524, 4635, 1263, 8596, 1096, 1300, 2601, 9538, 1210, 7695, 5940, 1086, 2725, 273, 1341, 4768, 6682, 7054, 8801, 5523, 4340, 652, 9332, 8133, 8921, 4461, 745, 8744, 1947, 2507, 1362, 5666, 5869, 9241, 3552, 1805, 5633, 7384, 4423, 7289, 608, 2662, 1181, 8541, 8382, 8157, 8087, 9079, 3281, 8186, 1839, 2356, 6471, 1838, 4081, 9882, 9958, 3700, 1480, 996, 2823, 3702, 9341, 9957, 214, 6321, 8558, 3659, 9704, 9868, 1303, 4756, 4769, 7617, 1129, 4455, 898, 8248, 4694, 9641, 7187, 972, 9126, 4552, 2145, 1417, 3191, 3404, 3513, 3613, 1788, 4949, 1993, 9502, 1861, 4651, 9549, 1510, 5943, 2469, 1991, 2667, 6606, 3875, 4616, 4857, 2859, 3402, 7787, 1113, 5381, 2141, 4084, 2246, 8603, 1490, 607, 9383, 8261, 308, 4763, 9351, 3482, 2511, 6292, 6229, 3756, 5935, 3039, 4087, 3979, 3126, 8326, 8223, 1823, 1684, 1237, 547, 2892, 9946, 8101, 5664, 4746, 8691, 9009, 7048, 5256, 3163, 7510, 8606, 8670, 8530, 5940, 2144, 9853, 2425, 8575, 33, 3855, 6193, 8562, 9023, 9941, 4002, 3630, 115, 1977, 7072, 4003, 3598, 1791, 3498, 2924, 7480, 6448, 540, 5811, 9005, 6729, 1554, 5957, 6050, 8101, 3335, 7055, 1758, 6272, 9941, 7402, 4447, 8980, 9971, 707, 8982, 3607, 7882, 7610, 4593, 8290, 6744, 3744, 9268, 3202, 5497, 8937, 5344, 9822, 3190, 4795, 3294, 7273, 3405, 7710, 2338, 6431, 6160, 7447, 4342, 9883, 9735, 6675, 2450, 5917, 9198, 3636, 6402, 9138, 5120, 3281, 1410, 5474, 2051, 1231, 9663, 4272, 7857, 8729, 7124, 1367, 7142, 9575, 3102, 5879, 3027, 4212, 6591, 7590, 4743, 7969, 5364, 4805, 6326, 8618, 5899, 9331, 3770, 1753, 1756, 9304, 8467, 3627, 1621, 2438, 9671, 4571, 2770, 4878, 2392, 6599, 3378, 4041, 1888, 7616, 6377, 7107, 6601, 3638, 2869, 6622, 2292, 4849, 6462, 3414, 1070, 2645, 9630, 577, 1240, 4644, 3105, 5282, 7335, 411, 5892, 4192, 3572, 3682, 4350, 1792, 7728, 9781, 9116, 3213, 9925, 7714, 6957, 6227, 2223, 4221, 2921, 5661, 3812, 7851, 8439, 3303, 9016, 5704, 4029, 9440, 714, 7036, 980, 296, 568, 7434, 8799, 8024, 5156, 790, 1212, 1284, 9614, 5326, 3893, 5499, 6433, 5817, 7899, 3773, 4320, 9499, 4987, 1788, 555, 2549, 1472, 7405, 8768, 511, 9498, 3078, 3595, 7512, 1690, 5690, 1232, 4056, 7817, 87, 2739, 9828, 7408, 5381, 2536, 7795, 5040, 352, 3877, 1303, 4227, 463, 1492, 1121, 4518, 1876, 178, 916, 928, 5077, 6445, 5460, 5422, 5075, 2720, 8293, 1513, 7196, 8105, 7908, 408, 4563, 9077, 9266, 4281, 9060, 5919, 6127, 1018, 2042, 7163, 2762, 2566, 5650, 8913, 9198, 1623, 9778, 6309, 7819, 9772, 2360, 1167, 6008, 6464, 4853, 6636, 6097, 7098, 4898, 3423, 1071, 7926, 6270, 7391, 6524, 6134, 42, 8369, 9372, 925, 9266, 1875, 333, 4055, 2537, 3235, 5039, 3812, 4478, 9037, 7925, 7802, 7408, 7768, 8607, 3344, 1613, 54, 8393, 7797, 4404, 8430, 8613, 3454, 804, 7375, 2227, 7374, 7243, 6385, 6530, 8594, 6673, 4386, 9729, 4472, 9887, 1859, 1860, 8470, 4004, 1747, 3652, 9734, 8544, 9084, 596, 2642, 5500, 8508, 7024, 8911, 1770, 1935, 7327, 2486, 1398, 7291, 3235, 1768, 8348, 9615, 2819, 5730, 8061, 6105, 8003, 1283, 2893, 8923, 4866, 1780, 3977, 7746, 2643, 4718, 6471, 4499, 1061, 3104, 3527, 4480, 133, 3888, 8466, 2517, 5015, 4232, 8354, 3276, 7643, 8805, 1614, 2534, 3754, 1571, 3372, 5799, 3124, 8521, 6144, 5781, 8172, 2918, 974, 9678, 8108, 8455, 7258, 3569, 7533, 1831, 4167, 3860, 7215, 8895, 3785, 379, 9956, 2211, 9213, 2253, 8137, 3462, 5426, 1364, 6280, 8965, 6896, 9114, 1969, 7891, 9088, 7878, 6617, 6551, 2834, 7991, 1729, 6296, 5, 8598, 1506, 7694, 1602, 8622, 353, 1593, 7331, 4256, 2861, 8847, 1517, 1019, 390, 3783, 7762, 9376, 8235, 5470, 8677, 7746, 8409, 2367, 6005, 9507, 5307, 5259, 7103, 4832, 4200, 5417, 8231, 2527, 9788, 4229, 8709, 9117, 3814, 9528, 1480, 5506, 520, 5943, 3031, 9757, 8122, 9293, 110, 8037, 4819, 4548, 9829, 4034, 1693, 6039, 1242, 610, 4566, 9326, 7846, 374, 9919, 5829, 4592, 3081, 9218, 8344, 5284, 1118, 6103, 1693, 7914, 1666, 2993, 7507, 6585, 9839, 4874, 2130, 801, 8673, 6427, 5154, 3511, 7802, 8330, 2064, 674, 3934, 3288, 7377, 8788, 7701, 3628, 3348, 4497, 6878, 7619, 5570, 3429, 420, 9887, 9975, 3967, 316, 6048, 4432, 4635, 3435, 9638, 8355, 1298, 8887, 6772, 597, 7653, 5247, 4817, 5207, 5622, 2629, 3909, 9660, 435, 7064, 6489, 3128, 7509, 2618, 596, 539, 3927, 8493, 7415, 3575, 3846, 7907, 7172, 7436, 6732, 3141, 5608, 2563, 9809, 4032, 993, 4994, 7092, 9597, 8421, 258, 5979, 4991, 7412, 3570, 1008, 4970, 7225, 5156, 9198, 6275, 2213, 7920, 8669, 7700, 232, 8185, 915, 1241, 5315, 8725, 6687, 1939, 8395, 6592, 8245, 3759, 8703, 5927, 2571, 2279, 5645, 8413, 5773, 2903, 7923, 5614, 8628, 4567, 3117, 4145, 1885, 4982, 6750, 7561, 2133, 4901, 4981, 3423, 823, 5834, 7708, 9464, 5540, 9618, 8289, 1005, 3456, 8112, 4358, 9547, 5349, 8386, 6293, 2299, 6201, 4385, 2549, 7752, 7887, 6864, 8001, 9184, 3409, 6241, 6196, 4721, 9740, 6211, 1971, 1252, 1722, 7695, 9796, 5959, 6554, 3556, 6526, 5339, 9663, 9256, 1526, 7427, 1286, 2262, 5170, 8657, 723, 686, 3422, 883, 1556, 5152, 6803, 2250, 1093, 430, 1884, 6658, 7481, 2125, 1105, 868, 8698, 7769, 8284, 4181, 1679, 1725, 4273, 1451, 7343, 9079, 2596, 5606, 9857, 9683, 8258, 3050, 3927, 4432, 4193, 4030, 4509, 8038, 3950, 7988, 775, 2099, 8186, 236, 3036, 9286, 1760, 1330, 5669, 5821, 7194, 4212, 4981, 3646, 1673, 3799, 6598, 7112, 2792, 6070, 6840, 7351, 8915, 6753, 7341, 7965, 7334, 6422, 3247, 7556, 4292, 2021, 8281, 3698, 9352, 7610, 1807, 2361, 9864, 2845, 3204, 8153, 9958, 8189, 8420, 9517, 4797, 4921, 3514, 5271, 8678, 6907, 7940, 5608, 8625, 2226, 9419, 8714, 4429, 1883, 5835, 2616, 1947, 6335, 6714, 9282, 5239, 4845, 6138, 8149, 2600, 803, 7412, 5534, 8208, 6125, 1281, 339, 8122, 8747, 5152, 2613, 9798, 1503, 1577, 2165, 7199, 3937, 574, 9839, 7032, 5013, 2641, 5017, 1295, 6702, 4237, 8514, 902, 1864, 9834, 8257, 5176, 1015, 6939, 1722, 3258, 949, 6380, 9996, 1928, 8999, 9059, 9500, 2573, 999, 1192, 5981, 5658, 1224, 161, 7709, 7523, 2716, 1411, 1286, 7444, 3665, 9387, 4570, 4039, 9628, 9041, 6010, 629, 4412, 4631, 9517, 1367, 6433, 7583, 7899, 2418, 8729, 7567, 8533, 3705, 3113, 7447, 8925, 6327, 8291, 3909, 501, 2610, 9249, 5413, 1381, 1722, 5585, 1923, 2407, 5484, 6338, 1702, 7208, 7825, 1906, 791, 9724, 3436, 5818, 9586, 109, 3905, 8147, 1441, 324, 1383, 972, 7279, 2368, 8135, 6179, 3878, 3827, 7608, 3703, 3651, 48, 5234, 5398, 6140, 4930, 1898, 409, 296, 7567, 835, 3840, 5966, 2777, 2495, 7100, 805, 9358, 2063, 6924, 8078, 5346, 2969, 3235, 9286, 6771, 7017, 5954, 7062, 8580, 9079, 2278, 9063, 1465, 8485, 1962, 1253, 4241, 6228, 6001, 5773, 9413, 6162, 5694, 5150, 1559, 3810, 2813, 8794, 9425, 2677, 4950, 8318, 7149, 3335, 3359, 390, 5846, 7844, 3101, 8742, 7529, 2454, 7234, 9346, 3397, 1360, 7152, 8428, 2443, 6798, 6186, 1272, 1850, 9841, 1909, 4244, 1304, 587, 6249, 1016, 9250, 1500, 6332, 7611, 9532, 7031, 8999, 6265, 8120, 9056, 6878, 6193, 3513, 3666, 9293, 2949, 7041, 7746, 6970, 7939, 916, 6353, 4438, 8480, 7190, 663, 6702, 3035, 5755, 3607, 6347, 5071, 1551, 4586, 5230, 8414, 1065, 2626, 6251, 4540, 2260, 2181, 1908, 7453, 6577, 9420, 9337, 4671, 9216, 4191, 3657, 865, 1198, 7321, 1046, 7111, 7413, 8134, 1079, 6215, 9013, 5916, 7928, 2500, 4331, 9833, 5223, 5826, 3780, 6666, 7172, 9908, 9148, 6950, 5010, 2555, 2519, 4979, 9981, 9754, 6137, 7994, 6839, 2943, 8247, 8619, 7520, 8397, 2389, 7597, 7270, 4786, 7838, 3741, 1448, 2547, 9671, 4879, 6141, 6275, 8575, 3023, 9357, 9483, 2572, 7518, 319, 3038, 1098, 9230, 6891, 913, 1502, 1472, 4769, 3438, 4054, 1097, 1004, 7235, 8738, 3960, 6760, 7348, 1050, 447, 3940, 4869, 2326, 4364, 3453, 2220, 6243, 6509, 6593, 7162, 199, 7304, 4995, 2600, 702, 2920, 1473, 9752, 2995, 7613, 4966, 9808, 4296, 6373, 8993, 7725, 9611, 8680, 4510, 1084, 6872, 9112, 1272, 8779, 3076, 6089, 108, 8783, 4557, 8032, 8642, 7108, 931, 9140, 5098, 7773, 8663, 1550, 9601, 4596, 1662, 2386, 8885, 8266, 7557, 4967, 8650, 2936, 9785, 1103, 7625, 202, 7179, 5394, 4153, 9964, 4624, 6505, 7375, 2917, 2886, 2459, 3107, 2793, 2356, 8746, 9316, 662, 9728, 5576, 5772, 7142, 972, 2923, 1101, 4265, 4451, 4367, 650, 4185, 9327, 9661, 1324, 9909, 9361, 8091, 7465, 7831, 9517, 7075, 7886, 108, 8904, 4508, 4959, 4538, 7791, 9626, 6811, 9425, 5226, 6650, 4974, 379, 2160, 6716, 590, 3955, 3302, 7506, 8028, 9737, 5301, 4127, 9632, 7438, 4253, 5198, 8418, 272, 6728, 7398, 6028, 9167, 4638, 6655, 6315, 3673, 2328, 1186, 3612, 899, 817, 7555, 2423, 9688, 4689, 6091, 5079, 6846, 8334, 5222, 5493, 6433, 895, 1954, 9528, 9166, 9998, 6998, 5715, 2974, 1956, 5334, 5327, 3289, 883, 5972, 3310, 6116, 8578, 363, 3650, 9259, 7962, 5080, 4462, 7651, 2457, 9178, 4796, 5009, 7460, 9187, 570, 834, 8833, 7405, 6305, 1771, 6011, 5965, 342, 2814, 9264, 7465, 467, 751, 3283, 9362, 5396, 7512, 2698, 1627, 6145, 4155, 6163, 202, 8308, 2640, 3358, 8546, 8852, 9038, 4760, 7585, 6905, 9231, 5621, 849, 5802, 4862, 8636, 7421, 1077, 1675, 2902, 5978, 436, 3849, 4550, 7719, 9111, 4064, 3274, 4385, 6076, 7698, 6475, 9509, 6557, 1693, 7184, 9007, 800, 2313, 374, 7705, 5204, 5959, 8730, 4715, 603, 1839, 6838, 2379, 2491, 3038, 7255, 9296, 6457, 731, 9274, 5464, 67, 560, 7043, 6246, 5995, 7731, 5730, 4316, 2587, 1141, 1119, 1213, 6744, 4189, 3384, 1017, 6910, 3967, 37, 36, 7014, 5954, 8783, 9364, 8891, 3654, 9076, 7613, 8570, 8160, 1518, 5777, 9568, 8717, 8392, 5701, 2406, 7498, 1177, 775, 3911, 2462, 8955, 8856, 7878, 114, 7975, 4259, 4364, 3221, 2864, 919, 7733, 3559, 6668, 3501, 9813, 6786, 1719, 6621, 4800, 7706, 2796, 5975, 1135, 1684, 3970, 7859, 1686, 9089, 9477, 8670, 4642, 6250, 3754, 4867, 1423, 272, 4092, 5178, 9202, 5149, 4021, 7362, 7354, 5705, 2789, 3183, 256, 3366, 7626, 1504, 1141, 7579, 1647, 8414, 9410, 7153, 7823, 7511, 7933, 2730, 7309, 7299, 9033, 6812, 2904, 4193, 8769, 9580, 9676, 2297, 2315, 1841, 270, 5185, 6814, 382, 3409, 7963, 9614, 6022, 9697, 3566, 6419, 2039, 3296, 9230, 4528, 2868, 1039, 793, 4771, 7978, 2446, 8970, 6413, 3590, 8281, 2771, 8060, 7055, 962, 7821, 9153, 8202, 4062, 9099, 4983, 6959, 5849, 5361, 4543, 9218, 6825, 6926, 6971, 3509, 5298, 4506, 640, 1815, 7143, 9533, 3837, 4331, 6583, 5650, 974, 9471, 7933, 9160, 4915, 5851, 4696, 9140, 3135, 1129, 789, 3884, 209, 86, 4528, 1116, 2831, 8711, 4941, 2140, 5634, 5834, 5975, 4852, 1023, 2636, 1086, 3012, 3865, 6740, 2144, 5858, 8805, 4002, 5108, 6955, 8529, 7867, 9651, 8560, 210, 9342, 9800, 2377, 7218, 9916, 7184, 1721, 4724, 3874, 5982, 9025, 3635, 3308, 1450, 755, 2062, 8409, 4171, 4428, 9468, 5063, 5969, 2272, 5708, 4623, 3311, 5761, 9831, 141, 1074, 4794, 4547, 5749, 3116, 18, 9345, 5457, 1368, 8286, 6216, 9270, 8519, 305, 1481, 2854, 5871, 3014, 1353, 3161, 200, 1026, 8086, 2270, 8967, 7197, 5183, 3318, 518, 2030, 398, 8592, 8643, 1583, 1942, 6445, 7836, 459, 8174, 958, 3840, 5628, 7973, 3811, 6947, 8397, 715, 1364, 429, 7321, 8231, 3629, 8501, 7473, 4673, 5463, 9929, 8145, 1764, 6904, 2894, 2552, 150, 8159, 9039, 4112, 8883, 5315, 912, 370, 7833, 9093, 8396, 2560, 4761, 3210, 8073, 578, 4281, 8812, 1639, 2485, 2724, 8467, 7118, 6836, 7057, 7501, 1504, 8342, 4050, 4380, 6303, 9590, 8083, 8865, 300, 675, 6991, 732, 656, 4372, 8798, 311, 9912, 9811, 6792, 1913, 8823, 5471, 995, 5440, 9290, 3370, 6096, 929, 1730, 2511, 2417, 7918, 792, 1761, 9151, 7766, 8577, 4207, 7765, 9604, 6610, 9115, 7941, 4442, 7067, 6587, 7034, 4349, 3909, 9313, 7922, 5456, 8326, 8358, 9110, 8745, 1939, 8808, 4033, 9932, 7144, 7771, 2486, 2864, 69, 8220, 9056, 3219, 5519, 1367, 7644, 6414, 5319, 508, 7127, 9635, 7869, 906, 7790, 5486, 1675, 2286, 2080, 7612, 3402, 393, 5899, 4797, 2362, 3366, 3952, 4667, 9611, 7677, 6003, 2501, 8883, 3630, 9991, 8923, 642, 162, 1478, 711, 1426, 973, 6899, 3600, 181, 2398, 6479, 1578, 135, 9047, 3085, 8655, 5153, 9505, 991, 9422, 8627, 9673, 6323, 1222, 6518, 2142, 8638, 4985, 1776, 4564, 4833, 9962, 1809, 7616, 7229, 9983, 5653, 1919, 3479, 8198, 1697, 994, 4965, 8823, 5692, 6520, 9139, 1188, 8805, 1313, 8990, 7369, 2826, 3674, 1169, 9727, 9497, 4140, 2972, 4297, 2044, 9881, 739, 82, 312, 7864, 510, 897, 5605, 5430, 7102, 1963, 4214, 1018, 3143, 5901, 2333, 1333, 5532, 5030, 6561, 5799, 7415, 8448, 1118, 3676, 3302, 6709, 4176, 9451, 7421, 213, 8690, 184, 48, 983, 9323, 6040, 4589, 7825, 6032, 8023, 1847, 1443, 9749, 1122, 8072, 4792, 9534, 1717, 2996, 8443, 4992, 4428, 238, 6791, 4889, 2321, 168, 2703, 6880, 999, 2042, 3212, 7231, 867, 7260, 552, 1637, 1241, 3472, 6326, 4832, 9964, 6159, 11, 3028, 3198, 6, 430, 1011, 8960, 8662, 1965, 4721, 9995, 4413, 9324, 8273, 6124, 9558, 9594, 568, 956, 4124, 1615, 8714, 3505, 4066, 953, 2784, 595, 5551, 9939, 9840, 1741, 6454, 5814, 577, 7469, 5895, 8149, 4197, 7915, 1561, 76, 9177, 7668, 9857, 2714, 6855, 2157, 4809, 8825, 7334, 1251, 1505, 9217, 4428, 9136, 4156, 1293, 3703, 2777, 419, 6472, 1265, 1794, 934, 7908, 9083, 1608, 2900, 2436, 9554, 3589, 1080, 6113, 4473, 7631, 3354, 6212, 4227, 6687, 3192, 6183, 9372, 4447, 1287, 8949, 2743, 3438, 5039, 9515, 2678, 1417, 5464, 1081, 1885, 763, 6559, 1597, 8632, 9134, 8287, 4282, 7558, 7521, 4912, 2774, 7423, 7717, 6298, 7230, 3543, 9396, 3208, 5057, 1425, 2571, 6191, 3088, 3102, 327, 5497, 127, 3636, 7443, 3708, 7256, 4091, 4804, 2564, 7407, 7060, 1610, 4150, 7567, 6053, 8290, 2978, 1923, 9949, 9544, 9934, 4129, 8524, 5837, 1783, 3288, 1549, 6533, 3159, 3364, 7137, 6471, 9641, 9648, 8682, 7671, 319, 6021, 5994, 9541, 259, 2333, 859, 9461, 7868, 76, 1210, 2829, 5985, 2140, 3797, 3379, 7833, 7656, 577, 7881, 762, 5626, 6609, 8598, 2766, 8907, 5211, 8316, 7566, 5644, 914, 4096, 3278, 7140, 4064, 4482, 7850, 805, 2964, 1455, 1861, 6210, 2953, 8888, 7565, 8139, 7710, 736, 8220, 5136, 4150, 8949, 1578, 704, 1600, 3613, 8510, 7971, 9911, 8390, 444, 2581, 4670, 6197, 4117, 4555, 1545, 198, 3105, 1898, 1101, 1819] Selection Times: [99696900, 90603500, 49967800, 15020800, 13002700, 13802500, 13240100, 12311200, 11225700, 13084300, 11659300, 13159100] Bubble Times: [151816500, 46418300, 10146800, 36018000, 31409800, 31861600, 27375800, 33835000, 26992300, 8122500, 8954400, 8383800] Merge Times: [2855400, 509700, 350200, 257500, 242100, 865300, 243500, 226500, 319100, 229500, 339700, 275000] Insertion Times: [2855400, 509700, 350200, 257500, 242100, 865300, 243500, 226500, 319100, 229500, 339700, 275000]
public class sortSteps {
// selection sort
public static void selectionSort(int[] arr) {
int selectionCompare = 0;
int selectionSwap = 0;
System.out.println("Selection Sort");
int n = arr.length;
for (int i = 0; i < n - 1; i++) {
int minIndex = i;
for (int j = i + 1; j < n; j++) {
selectionCompare ++; // comparing two values
if (arr[j] < arr[minIndex]) {
minIndex = j;
}
}
if (minIndex != i) {
int temp = arr[minIndex];
arr[minIndex] = arr[i];
arr[i] = temp;
selectionSwap ++; // swapping two values
}
}
System.out.println("Number of Comparisons: " + selectionCompare);
System.out.println("Number of Swaps: " + selectionSwap + "\n");
}
// bubble sort
public static void bubbleSort(int[] array) {
int bubbleCompare = 0;
int bubbleSwap = 0;
System.out.println("Bubble Sort");
int n = array.length;
for (int i = 0; i < n-1; i++) {
for (int j = 0; j < n-i-1; j++) {
bubbleCompare ++; // comparing two values
if (array[j] > array[j+1]) {
// swaps array[j] and array[j+1]
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
bubbleSwap ++; //swapping two values
}
}
}
System.out.println("Number of Comparisons: " + bubbleCompare);
System.out.println("Number of Swaps: " + bubbleSwap + "\n");
}
// merge sort
static int mergeCompare = 0;
static int mergeSwap = 0;
public static void mergeSort(int[] arr, int left, int right) {
// System.out.println("Merge Sort");
if (left < right) {
mergeCompare++;
int mid = (left + right) / 2;
mergeSort(arr, left, mid);
mergeSort(arr, mid + 1, right);
merge(arr, left, mid, right);
}
}
public static void merge(int[] arr, int left, int mid, int right) {
int[] temp = new int[right - left + 1];
int i = left, j = mid + 1, k = 0;
while (i <= mid && j <= right) {
mergeCompare++;
mergeCompare++;
if (arr[i] < arr[j]) {
temp[k++] = arr[i++];
} else {
temp[k++] = arr[j++];
}
}
mergeCompare++;
while (i <= mid) {
mergeCompare++;
temp[k++] = arr[i++];
}
mergeCompare++;
while (j <= right) {
mergeCompare++;
temp[k++] = arr[j++];
}
mergeCompare++;
for (i = left; i <= right; i++) {
mergeSwap++;
arr[i] = temp[i - left];
}
// System.out.println("Number of Comparisons: " + mergeCompare);
// System.out.println("Number of Swaps: " + mergeSwap + "\n");
}
// insertion sort
public static void insertionSort(int[] arr) {
int insertionCompare = 0;
int insertionSwap = 0;
System.out.println("Insertion Sort");
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
insertionSwap++;
insertionCompare++;
}
insertionCompare++;
if (j + 1 != i) {
arr[j + 1] = key;
insertionSwap++;
}
}
System.out.println("Number of Comparisons: " + insertionCompare);
System.out.println("Number of Swaps: " + insertionSwap + "\n");
}
public static void main(String[] args) {
Integer [] integerArray = {}; // create an array
ArrayList<Integer> integerArrayList = new ArrayList<Integer> (Arrays.asList(integerArray)); // convert array to array list
// input 5000 random integers between 0 and 10,000 into arrayList
for (int i = 0; i < 5000; i++) {
Random random = new Random();
int rn = random.nextInt(10000);
integerArrayList.add(rn);
}
int [] arr0 = integerArrayList.stream().mapToInt(i -> i).toArray();
System.out.println(Arrays.toString(arr0) + "\n");
// int arr1[] = new int[arr0.length];
// System.arraycopy(arr0, 0, arr1, 0, 5000);
// int arr2[] = new int[arr0.length];
// System.arraycopy(arr0, 0, arr2, 0, 5000);
// int arr3[] = new int[arr0.length];
// System.arraycopy(arr0, 0, arr3, 0, 5000);
// int arr4[] = new int[arr0.length];
// System.arraycopy(arr0, 0, arr4, 0, 5000);
int arr1[] = Arrays.copyOf(arr0, 5000);
int arr2[] = Arrays.copyOf(arr0, 5000);
int arr3[] = Arrays.copyOf(arr0, 5000);
int arr4[] = Arrays.copyOf(arr0, 5000);
// selection sort
selectionSort(arr1);
// bubble sort
bubbleSort(arr2);
//merge sort
System.out.println("Merge Sort");
mergeSort(arr3, 0, arr3.length - 1);
System.out.println("Number of Comparisons: " + mergeCompare);
System.out.println("Number of Swaps: " + mergeSwap + "\n");
// insertion sort
insertionSort(arr4);
System.out.println("Making sure they all work...");
System.out.println("Selection: " + Arrays.toString(arr1));
System.out.println("Bubble: " + Arrays.toString(arr2));
System.out.println("Merge: " + Arrays.toString(arr3));
System.out.println("Insertion: " + Arrays.toString(arr4));
}
}
sortSteps.main(null);
[4458, 128, 9577, 3075, 8231, 3076, 7169, 9360, 5359, 9095, 4697, 2089, 7741, 4916, 3188, 5125, 2510, 8047, 287, 4840, 1109, 7220, 3920, 3251, 6998, 1426, 4158, 920, 7336, 1984, 4971, 9269, 3970, 1397, 7633, 6762, 3199, 1103, 1034, 4306, 7100, 7185, 1809, 5086, 9415, 6205, 8610, 9721, 190, 50, 6889, 7596, 8496, 6950, 1331, 959, 3028, 8157, 8518, 7982, 4763, 8487, 1779, 9592, 8225, 6257, 6913, 3648, 3024, 3551, 3049, 3382, 8545, 9585, 9974, 8792, 9070, 431, 3287, 9850, 2859, 1054, 1080, 3612, 2790, 5625, 2198, 7930, 8392, 9409, 5267, 1184, 5546, 5841, 1603, 4423, 3747, 6649, 6752, 5036, 5697, 5323, 7522, 7000, 3127, 4213, 7221, 2208, 8296, 4050, 2687, 5418, 3507, 6905, 3871, 1401, 454, 9294, 8595, 7324, 9600, 5310, 3866, 8507, 4449, 6995, 8769, 8750, 983, 3514, 2172, 5391, 7534, 5817, 7830, 6936, 9272, 2229, 1339, 9780, 709, 6949, 7030, 9764, 3404, 2414, 8314, 9889, 5976, 795, 6456, 3703, 634, 6914, 741, 3914, 9973, 3403, 8944, 8795, 1337, 9691, 3937, 4827, 9785, 5720, 7946, 1275, 3743, 1459, 1874, 6264, 3508, 4133, 1085, 9345, 7659, 2650, 826, 3673, 1462, 501, 3538, 6635, 2608, 7430, 8342, 2277, 9938, 2164, 3069, 3000, 6646, 2784, 1236, 5668, 8113, 2170, 1331, 4434, 754, 9398, 7455, 1583, 6823, 3018, 7034, 8973, 3926, 741, 6391, 2103, 3266, 3263, 5511, 3320, 5171, 1789, 4828, 1623, 2311, 4669, 6543, 9850, 1689, 3634, 7249, 2751, 515, 3642, 1085, 147, 6059, 2236, 7715, 7652, 8670, 9816, 6549, 7932, 5055, 9978, 8353, 4166, 5879, 3724, 7556, 8397, 7591, 3054, 7276, 8069, 4261, 9208, 1194, 8220, 74, 6609, 6236, 5126, 2215, 4536, 8169, 5861, 5416, 2045, 3825, 6219, 8727, 5447, 5457, 5811, 4452, 2849, 9536, 6088, 4360, 470, 2713, 2906, 3410, 4047, 3315, 3846, 4164, 3253, 3660, 1422, 8530, 3176, 2190, 6685, 9590, 7686, 5677, 3634, 8235, 6323, 8809, 9394, 482, 6313, 5089, 9901, 9178, 6903, 953, 9960, 3834, 5962, 8860, 4129, 8880, 3281, 9643, 498, 8469, 1500, 4069, 5077, 7940, 3113, 8996, 2744, 9306, 3994, 4583, 6340, 7238, 4505, 7403, 447, 3148, 1446, 7474, 8556, 1618, 2898, 7088, 3775, 3139, 7643, 3355, 541, 5822, 9682, 1313, 7808, 5143, 2035, 7612, 2484, 6485, 6324, 2941, 8255, 6484, 6316, 8797, 9956, 6856, 4390, 482, 2424, 4719, 674, 9987, 3142, 6385, 4501, 9539, 7474, 1895, 8818, 4493, 1909, 8491, 4708, 2768, 8770, 3172, 2018, 4372, 6030, 1480, 587, 5751, 6825, 3628, 4863, 6647, 1741, 4324, 7318, 2209, 2830, 3528, 9149, 3300, 8141, 7002, 1597, 6874, 349, 8422, 6967, 7308, 6957, 9142, 7403, 6460, 6271, 5146, 5454, 2514, 7162, 7915, 7800, 3824, 8655, 7349, 1151, 1258, 5740, 2271, 3585, 3184, 469, 2608, 899, 2757, 3102, 7185, 7952, 8049, 9814, 650, 8900, 6799, 5464, 2969, 6841, 7456, 2029, 6611, 1264, 9968, 7177, 4086, 4589, 371, 1506, 444, 428, 1718, 544, 3028, 449, 4499, 3125, 1008, 3765, 7520, 4434, 5155, 9194, 7392, 1902, 9670, 619, 6833, 3156, 6987, 7993, 9465, 5962, 9367, 8648, 6488, 825, 1712, 4072, 2173, 4610, 6532, 8021, 8426, 3087, 5384, 8176, 3211, 6768, 740, 3019, 5093, 4882, 9204, 7835, 9535, 7119, 8863, 5236, 4754, 8693, 4635, 9362, 8464, 8295, 9145, 1755, 2676, 2354, 5501, 7172, 881, 1954, 7641, 3113, 5382, 3877, 8872, 7746, 4889, 8795, 4100, 2923, 4032, 9697, 2937, 4409, 4037, 4562, 4807, 403, 4545, 2150, 161, 1116, 5334, 9767, 8374, 1342, 8653, 233, 2828, 8923, 2878, 406, 4118, 2719, 4832, 7195, 9193, 7677, 5810, 951, 6884, 8992, 3734, 5372, 7926, 3913, 4060, 1470, 4034, 2328, 9442, 3056, 7382, 1002, 3171, 8415, 4048, 8973, 504, 208, 6083, 6792, 1089, 1301, 8213, 7959, 3169, 9460, 2748, 2228, 2571, 3613, 6831, 6173, 6584, 1880, 266, 7828, 9396, 6329, 3992, 3404, 5956, 9972, 503, 978, 3535, 8175, 2286, 7544, 9354, 4967, 9046, 2355, 5314, 413, 9394, 1150, 6816, 3587, 8747, 5962, 9016, 7480, 8474, 7175, 3974, 4771, 3867, 6097, 553, 6321, 1850, 4150, 2087, 7979, 9872, 7611, 6483, 562, 5282, 2448, 5856, 8470, 8660, 5928, 2335, 1730, 9943, 5021, 7694, 6845, 7948, 3184, 527, 7797, 3005, 3747, 3917, 7801, 4893, 3726, 2433, 6163, 942, 6316, 7860, 4769, 5098, 7937, 7548, 3146, 4932, 1377, 4982, 7687, 4334, 2878, 8204, 7509, 5759, 8143, 1946, 849, 6121, 1609, 7160, 7734, 1067, 8287, 3141, 4062, 3093, 4774, 4275, 4961, 9074, 8693, 456, 2206, 5536, 5553, 4125, 5464, 1144, 635, 979, 1322, 3852, 8674, 7279, 5424, 5027, 9784, 2885, 4188, 7528, 1865, 3150, 9782, 3385, 36, 2435, 8324, 7776, 2518, 99, 5047, 5994, 3245, 6226, 379, 4506, 214, 7964, 5940, 4455, 3743, 8318, 1621, 6218, 7213, 5787, 9377, 4055, 1589, 8211, 5583, 6218, 3343, 9943, 6359, 6129, 7766, 1283, 5598, 6223, 1422, 8228, 2275, 3565, 9592, 1669, 9899, 9149, 9794, 2614, 85, 2829, 534, 9800, 373, 7443, 8121, 8625, 5413, 3504, 4871, 687, 6538, 2936, 4276, 9967, 5577, 1208, 14, 5987, 4622, 1936, 5222, 2401, 9506, 3428, 3929, 3776, 30, 2835, 2851, 3970, 99, 5820, 2604, 4575, 5689, 4252, 2454, 2478, 1507, 5985, 9241, 4097, 6105, 9412, 4255, 9567, 9520, 2190, 2881, 4311, 1161, 2403, 408, 5732, 5313, 9193, 1895, 347, 1037, 463, 780, 6023, 4943, 1774, 5596, 5280, 4714, 9018, 9678, 2394, 8305, 8229, 1389, 1763, 2359, 9783, 128, 9540, 5810, 552, 5110, 1977, 6070, 5576, 9167, 185, 2116, 1131, 22, 6432, 1513, 3067, 1612, 2029, 7579, 3342, 8121, 8596, 8649, 2475, 6679, 5308, 5149, 7090, 2435, 7733, 9557, 6686, 1779, 2810, 2849, 2895, 7947, 308, 6423, 4856, 6231, 6612, 708, 2440, 8324, 2359, 4119, 1257, 3271, 3190, 9939, 2439, 8194, 2866, 294, 3533, 7806, 2420, 6190, 8129, 291, 4902, 641, 3530, 6338, 7544, 3521, 8452, 1456, 1944, 9745, 5701, 9375, 1541, 8789, 2472, 7249, 4662, 3456, 5843, 5563, 9347, 5522, 5761, 1382, 4050, 340, 7395, 3258, 8629, 1855, 4912, 7466, 4219, 7866, 9137, 6393, 2198, 1103, 9971, 4368, 703, 5524, 3669, 1863, 4374, 1453, 6849, 4913, 2894, 2870, 6985, 5167, 5248, 6244, 4521, 4496, 3099, 5114, 3365, 3933, 9982, 2325, 9812, 5661, 8871, 2714, 6394, 4537, 4966, 7186, 6723, 3628, 5467, 7940, 6268, 6472, 8478, 5086, 2985, 1493, 5262, 4554, 4569, 6151, 8596, 3307, 4693, 6558, 1764, 7325, 400, 2801, 6149, 9047, 5746, 1578, 4228, 3294, 8134, 4120, 6095, 5301, 3466, 3070, 8370, 7289, 1504, 5201, 324, 7713, 5993, 6740, 8128, 2734, 8306, 6049, 2559, 2467, 5862, 295, 9215, 3654, 5086, 9719, 2985, 6871, 8007, 9185, 4468, 7838, 5782, 3792, 3690, 5661, 9827, 6587, 4296, 4524, 8801, 5966, 3771, 3051, 2520, 809, 9433, 630, 4011, 8136, 7929, 3726, 960, 2639, 5228, 4605, 5497, 9578, 8739, 3727, 3329, 7161, 2794, 9827, 781, 8967, 5562, 8855, 3197, 1415, 3351, 5226, 6366, 2557, 6998, 94, 8846, 7014, 4769, 7812, 4605, 7853, 5721, 5094, 705, 9166, 5698, 5714, 1634, 5430, 7079, 2761, 1511, 7527, 39, 4383, 3787, 1554, 288, 4687, 4552, 3679, 2514, 1795, 5772, 9403, 6635, 8416, 4269, 2381, 3122, 4086, 5604, 461, 7999, 3000, 8034, 9149, 7309, 8525, 6934, 8319, 1878, 619, 5450, 8961, 4457, 4810, 4946, 2987, 8229, 7145, 5175, 3521, 6659, 452, 2315, 6937, 2586, 2801, 9496, 3115, 6998, 4508, 406, 1437, 763, 3002, 4921, 3226, 2423, 7575, 9472, 6727, 2285, 370, 6217, 4389, 1884, 2626, 412, 6479, 4840, 9464, 6986, 3050, 5912, 4415, 8180, 758, 9900, 9822, 3218, 4763, 6306, 828, 8041, 4280, 308, 5300, 4274, 3416, 9689, 8452, 623, 8753, 2587, 3824, 1361, 8547, 5213, 3229, 7693, 5655, 7501, 1606, 2592, 4656, 8469, 935, 5086, 238, 9324, 7273, 5660, 8822, 5113, 8855, 1838, 7715, 6517, 6528, 1540, 2024, 4092, 5277, 6833, 3615, 4011, 9109, 2510, 3616, 2273, 5310, 5886, 6236, 2062, 6025, 1932, 9128, 3739, 3912, 8756, 4580, 6826, 6541, 7654, 5985, 8401, 1247, 4482, 9427, 7205, 7543, 3761, 8546, 8097, 2507, 2072, 6508, 5484, 8803, 2738, 2163, 5603, 4884, 2091, 9463, 2179, 129, 3981, 8839, 7910, 9577, 3213, 4504, 5776, 5732, 8513, 8830, 1366, 425, 4974, 3771, 4738, 1586, 9788, 6852, 4226, 1395, 7811, 5497, 675, 2814, 3792, 9352, 5486, 932, 2523, 8168, 3790, 640, 6499, 6359, 2855, 3714, 5384, 4307, 4893, 6054, 3564, 118, 1616, 7069, 412, 1801, 7695, 3801, 1102, 5192, 6957, 21, 6407, 2388, 7196, 2325, 5788, 1168, 45, 5639, 5049, 6873, 7272, 6876, 7271, 3593, 4701, 1304, 5103, 3088, 8867, 3087, 5533, 4568, 3691, 6378, 9371, 2508, 7051, 5981, 7323, 9355, 4499, 4532, 9181, 7385, 63, 16, 2211, 1290, 1042, 5917, 1380, 9507, 4363, 9716, 3738, 5340, 7753, 1000, 7292, 8542, 7855, 6113, 1145, 6449, 5503, 9708, 7859, 2705, 1042, 2263, 5223, 4224, 9707, 3852, 4471, 8168, 7291, 2526, 7618, 641, 1938, 2049, 8326, 138, 5916, 6091, 1532, 1328, 1633, 7558, 1866, 8598, 9306, 4799, 2598, 4273, 1232, 678, 6120, 719, 891, 6947, 7025, 3434, 1596, 3285, 4439, 5910, 9981, 6612, 1774, 7463, 6907, 2827, 1956, 9596, 2135, 6291, 9104, 8184, 9965, 1905, 139, 1504, 6220, 487, 3288, 9390, 8454, 9991, 7217, 1994, 4836, 2702, 6285, 2508, 5246, 8372, 6884, 359, 6346, 7299, 4371, 4763, 168, 9542, 7895, 4124, 6775, 2390, 9699, 5499, 7997, 9435, 9663, 3548, 3089, 4442, 8248, 7770, 6801, 5037, 57, 6125, 8761, 4677, 2667, 7437, 8117, 946, 9273, 3255, 6455, 4015, 1198, 6196, 1508, 6842, 7905, 5103, 9628, 2268, 6103, 3168, 1191, 6109, 1977, 9064, 5066, 430, 9485, 5295, 2290, 9949, 4280, 8356, 9097, 3523, 3520, 306, 3227, 7337, 7088, 9461, 1896, 6655, 1836, 5491, 6625, 5819, 85, 539, 2897, 4049, 2707, 2189, 7409, 6407, 6714, 8107, 2427, 98, 4448, 1383, 4099, 5227, 6591, 3635, 3337, 6754, 8661, 8148, 5842, 1917, 5640, 7706, 1648, 3061, 6358, 9320, 7928, 6456, 5327, 8119, 258, 4417, 9528, 9849, 908, 5886, 6184, 835, 2872, 634, 6053, 7047, 5023, 7426, 5484, 8136, 8119, 816, 3191, 6024, 2277, 738, 6063, 6313, 3020, 4673, 4442, 3508, 8034, 1963, 6320, 3282, 5948, 3437, 9335, 3547, 8090, 3078, 5519, 6586, 27, 810, 1713, 4790, 6080, 3142, 8442, 2213, 7887, 3904, 4988, 4432, 405, 5434, 3046, 310, 6434, 6842, 338, 6677, 6605, 559, 9855, 7404, 7130, 5453, 1555, 7246, 6277, 8847, 4566, 4635, 9664, 845, 3163, 5249, 1009, 2722, 9164, 8106, 4522, 7829, 2498, 7812, 8306, 3689, 9810, 6726, 2314, 1919, 6427, 2011, 6677, 7210, 4578, 5886, 5470, 500, 614, 7454, 5379, 5425, 4331, 7900, 7613, 670, 8046, 5740, 7103, 9471, 9305, 4359, 499, 4178, 6709, 6093, 7808, 3471, 5653, 6181, 8789, 7356, 9916, 8767, 2288, 719, 6529, 3055, 9366, 3111, 7360, 5430, 5168, 2379, 219, 7271, 1559, 4575, 640, 8707, 1179, 8741, 6443, 4171, 1013, 8737, 8131, 577, 7576, 9710, 8213, 9031, 2973, 6035, 7114, 8365, 9411, 3528, 3759, 2432, 7789, 9057, 5004, 7072, 9662, 6762, 1879, 2767, 2088, 5942, 2078, 3638, 3617, 351, 8647, 4288, 1495, 2190, 7801, 2608, 221, 8940, 1442, 4983, 5435, 8357, 1392, 2128, 5665, 7536, 9544, 4361, 6085, 4757, 8969, 8286, 4479, 9782, 3434, 6198, 6066, 6267, 428, 4099, 5803, 8319, 4444, 2929, 1473, 1816, 8897, 7722, 3857, 8380, 1143, 2870, 5075, 3754, 7022, 1423, 7829, 9847, 1478, 3715, 7242, 4295, 2138, 2319, 8150, 885, 7822, 9633, 3544, 7679, 3988, 3045, 7292, 8074, 1051, 4646, 3514, 5274, 100, 7052, 3981, 2691, 5229, 3764, 7028, 5679, 8220, 6141, 7696, 2842, 7971, 6367, 9986, 8863, 9367, 6692, 7400, 666, 4983, 7387, 700, 9878, 8127, 4115, 5022, 82, 8427, 6398, 5684, 706, 6101, 7364, 572, 6143, 11, 4214, 2829, 5833, 5152, 8170, 257, 4595, 9614, 1028, 6384, 7751, 1700, 3362, 1156, 3514, 510, 8236, 5471, 8717, 4795, 1454, 5665, 4116, 5210, 7842, 9060, 4860, 6655, 2567, 7037, 2479, 3176, 64, 6227, 4871, 2079, 8252, 2789, 1833, 2689, 9639, 5892, 1044, 3615, 1891, 74, 20, 9589, 9885, 3369, 803, 5347, 1688, 7550, 8015, 5893, 8977, 433, 4463, 6280, 52, 1981, 9720, 8151, 4676, 8650, 4265, 9920, 1901, 5812, 4663, 1818, 3213, 8061, 4012, 6472, 7398, 7466, 9983, 6578, 6902, 5975, 7721, 229, 233, 6367, 2016, 688, 5951, 5586, 7830, 2279, 7953, 9268, 3214, 1544, 6809, 5286, 6933, 8169, 468, 2191, 5301, 7337, 5771, 9474, 7678, 8040, 2002, 8940, 3130, 3280, 9354, 8516, 6096, 2469, 9059, 1209, 819, 1476, 1140, 8644, 8290, 8822, 7279, 7867, 3093, 1739, 6697, 3366, 2900, 3603, 9544, 4476, 1921, 9339, 4049, 7356, 5406, 2550, 1450, 9053, 8850, 823, 4648, 1255, 2242, 5535, 7030, 4871, 5250, 3612, 5587, 3771, 3611, 118, 1404, 1494, 2270, 4206, 712, 9527, 5582, 4965, 7711, 1367, 8501, 9621, 3570, 4602, 9146, 9890, 7388, 7901, 7725, 4251, 5897, 9662, 3796, 810, 6117, 3338, 7662, 9916, 5879, 7934, 5153, 9013, 6881, 8367, 2205, 4163, 3854, 3894, 6147, 3192, 4732, 8530, 3319, 382, 320, 4670, 2041, 8048, 1402, 4965, 9827, 9360, 90, 8081, 5756, 2376, 438, 7938, 796, 9133, 7109, 5429, 2787, 2747, 2527, 7643, 6091, 5197, 3980, 7563, 9112, 201, 6097, 458, 6365, 5255, 6553, 7026, 763, 5822, 3447, 1498, 9131, 4742, 6327, 2936, 1658, 1642, 8998, 1412, 6878, 4161, 6051, 554, 3513, 5164, 6424, 2928, 6292, 725, 9662, 6898, 7972, 3084, 6202, 6338, 9030, 16, 8621, 4045, 4470, 5724, 8327, 9577, 8951, 5145, 4230, 3862, 4638, 4295, 5215, 8600, 4596, 5863, 7058, 1907, 9497, 5334, 328, 3794, 3987, 2833, 9252, 8027, 7662, 8698, 4317, 5542, 2426, 7496, 32, 648, 1416, 983, 3760, 5714, 5465, 7413, 3847, 8892, 9603, 609, 4554, 7128, 5746, 504, 4578, 4025, 9371, 3767, 4646, 7165, 368, 8166, 323, 5282, 9388, 1116, 7429, 1398, 9972, 7213, 4601, 4174, 6078, 7609, 80, 9810, 3618, 8455, 923, 6729, 1829, 3059, 6843, 7043, 9300, 1681, 3835, 278, 44, 5195, 5985, 5652, 1383, 8825, 9116, 9947, 3588, 819, 6736, 9813, 78, 4758, 6735, 3171, 1239, 3368, 3889, 588, 2899, 927, 3820, 3027, 9795, 3951, 5290, 1282, 79, 4806, 4545, 8591, 4724, 1067, 6748, 9478, 8066, 3269, 5463, 6045, 7137, 4870, 9601, 8600, 6178, 2066, 1659, 4860, 6057, 912, 4493, 8139, 6107, 6234, 3630, 1792, 9580, 8801, 4202, 2811, 4234, 342, 7332, 3287, 6732, 2650, 851, 7863, 9168, 6619, 3791, 2890, 6495, 4891, 2607, 385, 3035, 9777, 4696, 1375, 3862, 1261, 9053, 5948, 7550, 7303, 6212, 741, 6874, 9088, 5808, 9575, 4927, 8693, 7790, 5792, 5887, 933, 6186, 5453, 2898, 2662, 9895, 4623, 6522, 760, 6936, 5838, 2103, 28, 7470, 8083, 3394, 5612, 1249, 821, 5608, 484, 6656, 7485, 9756, 3352, 2817, 1250, 1301, 1376, 8336, 1219, 485, 3171, 2686, 2492, 8630, 1847, 9261, 5677, 3839, 1968, 8318, 7383, 8374, 7759, 3650, 9462, 5248, 1004, 5913, 4657, 6142, 829, 7373, 3773, 6507, 8196, 6480, 4891, 7523, 8234, 7998, 3532, 6610, 2805, 9167, 1961, 1335, 528, 9851, 8912, 6002, 7035, 2608, 9565, 129, 4655, 6603, 2889, 6353, 3114, 4567, 9379, 2063, 7381, 4137, 5919, 8280, 4015, 5335, 6449, 7948, 1140, 6792, 5132, 5139, 8852, 7659, 8757, 5425, 7771, 9282, 1257, 6386, 5517, 7588, 765, 9430, 6784, 4639, 9915, 8277, 2875, 1427, 9516, 4244, 2347, 4842, 8955, 3269, 6075, 8847, 8301, 6404, 2267, 8433, 5258, 6811, 3975, 9120, 735, 9128, 3939, 5849, 4771, 4815, 9038, 7665, 5738, 4136, 3595, 3811, 6556, 8876, 6449, 7085, 9907, 312, 8207, 5946, 2929, 5817, 1648, 4347, 7875, 1281, 3860, 3989, 6242, 6267, 9815, 4652, 8370, 632, 5673, 7787, 2222, 6973, 575, 837, 8304, 3712, 2001, 4541, 9844, 933, 6929, 2034, 1065, 2920, 6796, 9865, 3894, 7337, 3884, 4249, 534, 3503, 9356, 4367, 9756, 7060, 2331, 5928, 7944, 900, 937, 4059, 2629, 5269, 9836, 7536, 8115, 824, 2494, 8934, 315, 1728, 8355, 4341, 9332, 1523, 5186, 6016, 338, 8096, 320, 3504, 2165, 366, 2475, 8650, 6548, 4796, 5860, 9892, 7457, 3490, 9136, 5296, 3613, 9661, 3530, 2673, 8919, 3508, 5607, 5696, 8835, 2660, 4192, 8624, 3709, 9522, 8405, 8493, 7317, 2838, 732, 5388, 8346, 1372, 9177, 8515, 9137, 736, 6750, 3233, 8628, 3016, 7204, 3137, 9205, 8460, 2202, 2433, 8654, 8093, 4198, 5833, 1853, 9011, 742, 4394, 6513, 7831, 5680, 2096, 5868, 2014, 8559, 5859, 7733, 114, 6670, 3546, 6029, 6181, 3237, 2525, 3047, 5237, 5635, 7016, 7143, 8811, 414, 3440, 9180, 6814, 8956, 9107, 8125, 8345, 1070, 2928, 4864, 3991, 6082, 5457, 5001, 349, 1751, 4852, 1331, 9066, 1857, 4360, 2082, 2161, 154, 9784, 4222, 1542, 4741, 6394, 9321, 1016, 3885, 2529, 500, 8691, 2845, 5563, 1721, 1807, 1994, 7233, 2658, 5111, 5039, 8149, 7434, 3018, 8904, 9368, 9100, 2120, 4688, 8489, 5081, 3506, 4952, 4402, 6996, 5899, 1166, 6508, 9406, 6443, 9564, 3624, 1279, 4543, 2620, 45, 2969, 3833, 6363, 9056, 4479, 5529, 1410, 6906, 4140, 685, 6764, 261, 2498, 7679, 1861, 6256, 4907, 3793, 8113, 1306, 4391, 7913, 9682, 5760, 2660, 4428, 3932, 6265, 7436, 4766, 3495, 4012, 7664, 141, 1763, 8349, 4667, 1789, 5205, 916, 5416, 7091, 9009, 8902, 9307, 6387, 7398, 8715, 1768, 7224, 8805, 2051, 9709, 7965, 5643, 8225, 663, 6480, 9244, 1689, 8201, 1486, 1933, 9617, 126, 7714, 7265, 3539, 1571, 7724, 6205, 8499, 6188, 4466, 5757, 207, 8590, 4303, 4628, 7050, 6453, 6626, 8281, 1289, 7872, 8822, 3976, 8985, 5812, 4007, 6181, 9643, 5347, 1855, 1344, 642, 6270, 7094, 3227, 2515, 2370, 3318, 7291, 4532, 1973, 9406, 8969, 8356, 3753, 5396, 5282, 9792, 8677, 1319, 4784, 9575, 3739, 5554, 9013, 7294, 4495, 6467, 6841, 3171, 9886, 5752, 4262, 7500, 6207, 2636, 4496, 330, 3392, 9506, 2144, 2552, 4935, 1582, 6134, 1526, 7456, 3637, 1129, 3405, 157, 4276, 5298, 9337, 503, 2014, 7097, 9118, 5887, 1323, 6677, 1107, 9017, 7686, 9561, 948, 3588, 4768, 524, 1046, 2651, 697, 1441, 3939, 3958, 1322, 5441, 6809, 9978, 6088, 722, 2094, 1699, 4945, 4064, 4515, 5974, 7419, 6868, 8981, 8928, 3940, 781, 548, 2523, 4687, 2395, 2573, 8658, 5920, 713, 7822, 9408, 864, 3574, 1231, 8576, 8114, 4680, 9299, 8122, 5444, 5546, 7282, 3560, 9067, 7389, 6267, 362, 8275, 8518, 8728, 6903, 6262, 8615, 7414, 7019, 694, 1732, 9939, 6531, 5438, 7967, 3455, 4096, 7563, 4139, 4424, 7888, 9840, 6169, 3738, 7538, 7928, 3376, 6317, 5944, 1397, 4549, 8162, 5406, 3922, 5146, 6540, 8723, 4018, 2403, 9093, 5802, 1976, 6754, 8913, 1370, 2734, 7628, 3600, 7000, 3256, 7040, 6062, 9449, 6474, 3327, 7343, 7307, 3529, 3130, 8384, 3542, 7005, 2014, 3129, 6471, 747, 2131, 968, 5119, 3041, 3512, 1524, 4779, 6535, 9117, 2343, 7889, 8960, 9416, 6250, 4563, 6776, 6031, 1204, 9792, 7520, 1470, 3587, 5538, 8396, 6415, 2859, 1710, 818, 9591, 3794, 2020, 4243, 6090, 866, 7284, 2902, 6352, 2458, 8362, 4881, 9029, 9932, 2590, 1581, 9371, 52, 8651, 8678, 8341, 2636, 4058, 5627, 4669, 8476, 6121, 274, 3993, 2739, 1615, 781, 6778, 5995, 9674, 1908, 8675, 5144, 9842, 509, 5937, 1462, 1434, 8858, 1186, 2697, 6325, 5444, 493, 8907, 3647, 2345, 3963, 7579, 9531, 5291, 2817, 3761, 4795, 3610, 3498, 7923, 8806, 6148, 9250, 7815, 8752, 6349, 510, 5414, 8144, 4812, 1953, 3069, 6862, 8440, 378, 3879, 8595, 1792, 3134, 642, 1042, 1564, 1825, 6211, 2150, 7198, 4630, 701, 3957, 7323, 2306, 1433, 975, 4003, 5915, 5985, 8993, 132, 5755, 7115, 6110, 5870, 9390, 8701, 7381, 7022, 4758, 6337, 7054, 9543, 8556, 1904, 2948, 2266, 844, 2543, 4700, 8024, 7722, 8063, 3963, 9380, 9745, 6037, 7214, 9746, 7375, 1784, 9201, 7963, 7147, 6274, 2193, 2097, 9860, 6271, 7202, 9518, 8180, 8150, 5478, 4892, 3344, 5315, 7429, 6371, 3804, 79, 3165, 4597, 3796, 5197, 6855, 3930, 1611, 6970, 3332, 6225, 7965, 4754, 2847, 8861, 5544, 6320, 9861, 3190, 9757, 3866, 2011, 7251, 905, 1207, 9116, 7152, 2764, 2952, 1515, 6968, 581, 5353, 7060, 7498, 43, 7663, 8110, 5004, 8157, 2533, 9073, 6292, 4428, 7960, 3539, 7701, 4290, 4766, 7758, 7559, 6290, 2697, 7094, 8816, 8221, 2277, 4305, 9818, 5824, 9166, 8440, 6862, 4471, 9847, 9850, 7356, 4797, 34, 6123, 2832, 8962, 9753, 6272, 2176, 4334, 2625, 6551, 2946, 693, 9180, 4597, 9098, 6395, 2256, 1019, 1325, 1864, 8367, 9478, 946, 7972, 8672, 1882, 2220, 8084, 7839, 8197, 9440, 6988, 338, 8045, 9683, 2657, 481, 8636, 8287, 2187, 2836, 3845, 7480, 2362, 4759, 8479, 3907, 3, 2552, 2278, 6925, 5409, 1625, 6074, 1988, 6001, 8641, 4289, 8182, 3111, 4140, 9264, 891, 6997, 7652, 5528, 415, 5382, 4986, 7286, 7347, 8161, 4653, 5651, 8084, 3524, 3810, 5717, 5021, 5060, 10, 5869, 8366, 5568, 9338, 5518, 2903, 8354, 1018, 7292, 1030, 5925, 9617, 5154, 7736, 5920, 8183, 5807, 2152, 9065, 8859, 4581, 6816, 3151, 2973, 4088, 1128, 1225, 477, 4619, 5829, 1838, 5420, 3198, 264, 6282, 452, 362, 6640, 7984, 3311, 9837, 3116, 3810, 1306, 3038, 6961, 1180, 5215, 2027, 509, 6701, 7414, 1456, 9035, 9803, 2980, 9931, 7850, 2971, 6981, 6228, 2063, 9551, 5449, 6261, 3419, 3365, 2423, 1208, 1389, 8840, 655, 5413, 1403, 3295, 9838, 7561, 1469, 7724, 3819, 5471, 6186, 5247, 9841, 9404, 3009, 6679, 8623, 2820, 3352, 1301, 3816, 4603, 4606, 5303, 7002, 9508, 2961, 4677, 2105, 5163, 471, 2864, 9664, 3552, 9641, 3239, 3862, 4380, 5614, 5448, 9436, 9809, 6370, 1285, 4723, 787, 7287, 5555, 8314, 2877, 1022, 6808, 7369, 3910, 3645, 7280, 1744, 5299, 7674, 8089, 6060, 4015, 5039, 473, 4560, 7387, 2673, 4280, 4263, 1797, 5937, 4939, 4880, 3703, 1020, 7501, 864, 2689, 3764, 4399, 4492, 8507, 3972, 4072, 8826, 4365, 5021, 8200, 6607, 3806, 2261, 1983, 2423, 4936, 8219, 5782, 4877, 5165, 2151, 3491, 2039, 4819, 9621, 9519, 8467, 4738, 7389, 8413, 1542, 6977, 1129, 3015, 9316, 5966, 2461, 5158, 8088, 6824, 8571, 6006, 7227, 7587, 5752, 2388, 8960, 2577, 6428, 5000, 5025, 6134, 7122, 6168, 7200, 1424, 7377, 2047, 8057, 8780, 2693, 2539, 9641, 4475, 5560, 9933, 6854, 1695, 9333, 2908, 9448, 1066, 7887, 6360, 474, 3501, 6045, 7489, 398, 8372, 2104, 9017, 4520, 6100, 6245, 5992, 8108, 421, 1863, 1026, 7934, 1910, 1665, 2878, 5513, 2362, 2956, 3178, 6291, 8966, 4208, 2396, 7104, 8250, 3012, 3628, 2784, 6809, 5057, 6613, 5733, 3507, 4012, 38, 7889, 7174, 8645, 8698, 2851, 6546, 3673, 5667, 2125, 5915, 3717, 2129, 8944, 8596, 6322, 4350, 2994, 5781, 5477, 1488, 1033, 1128, 1868, 9230, 8249, 7717, 9189, 1596, 284, 41, 3585, 8129, 292, 6805, 3206, 1970, 3845, 7061, 9452, 2928, 6032, 3285, 5348, 9573, 2233, 213, 7308, 4608, 557, 4167, 8774, 7916, 126, 473, 4769, 8238, 4848, 6091, 439, 7643, 2220, 4223, 6708, 8640, 2788, 1685, 3799, 4498, 3746, 3476, 977, 5493, 6317, 8837, 3190, 4428, 8189, 8433, 5938, 2035, 6740, 5254, 402, 4406, 3968, 4229, 590, 4726, 8383, 6982, 8631, 6945, 348, 177, 6572, 3190, 9869, 7731, 9018, 8769, 7489, 2432, 6249, 4937, 9455, 4634, 6840, 3614, 2242, 2198, 1736, 956, 791, 4072, 8618, 6771, 4415, 1306, 2892, 6292, 9054, 8074, 465, 404, 1478, 662, 9814, 6771, 4440, 1816, 9058, 2685, 4262, 7355, 3763, 6765, 6947, 1720, 1125, 8867, 3535, 8907, 7523, 2486, 7118, 4143, 7802, 8329, 3156, 4989, 4788, 8441, 4863, 3381, 9039, 4388, 4706, 3206, 6321, 2471, 90, 5972, 6791, 7012, 3539, 9075, 6024, 4783, 8390, 9046, 6866, 4637, 9269, 2970, 701, 2831, 1735, 4211, 6728, 8873, 9859, 912, 5225, 3899, 1179, 6073, 7534, 5804, 6152, 8168, 1821, 9533, 2230, 9607, 6460, 1535, 5556, 564, 5002, 3505, 6211, 7400, 5739, 5153, 9000, 9695, 162, 778, 559, 8578, 1470, 6130, 5662, 9572, 7681, 7530, 2353, 5982, 7223, 5237, 8276, 1107, 4782, 8762, 7909, 1836, 4540, 3368, 401, 2248, 7456, 4187, 9542, 408, 8915, 5145, 9554, 8073, 409, 618, 5889, 6126, 5081, 6019, 1958, 6590, 3942, 2834, 3021, 811, 227, 3712, 1560, 7960, 8421, 1205, 203, 1925, 8287, 7148, 6707, 5970, 1084, 5058, 69, 2256, 9636, 9156, 2835, 7231, 9706, 8794, 4508, 367, 5389, 4851, 6737, 7984, 3734, 440, 4326, 4299, 9013, 7250, 8807, 8465, 6224, 5468, 3049, 9404, 5102, 9440, 228, 3218, 937, 1267, 5272, 6572, 8276, 5153, 4865, 6089, 9903, 1870, 7572, 3248, 9032, 5667, 40, 5294, 4040, 2966, 7603, 6490, 782, 7460, 8788, 7234, 6729, 1332, 279, 4003, 1363, 1632, 8576, 8873, 2358, 7138, 4675, 8058, 3555, 8451, 8141, 3760, 5165, 8675, 12, 8796, 2153, 7156, 218, 5935, 8444, 3598, 5487, 9239, 8821, 8231, 8370, 8649, 7011, 5139, 6483, 6096, 7896, 6772, 9854, 8139, 2407, 8703, 7746, 9171, 1649, 6817, 8922, 9925, 22, 7032, 4350, 8293, 2045, 763, 2371, 1695, 5240, 1047, 9486, 7084, 3217, 2755, 9635, 7986, 5717, 5836, 3472, 7779, 6739, 7592, 3977, 5101, 7440, 1621, 9958, 7026, 5083, 5222, 8135, 5410, 3423, 3878, 3710, 7514, 3772, 2037, 5299, 3147, 6328, 1792, 5651, 8348, 8148, 4260, 5643, 1263, 7182, 6960, 2259, 1635, 9750, 6451, 3697, 7914, 9651, 3846, 569, 2490, 2989, 9273, 6465, 9602, 4155, 8968, 1108, 9340, 2876, 8607, 4792, 3043, 3050, 5256, 612, 5655, 64, 0, 5158, 192, 1546, 6234, 704, 3610, 4042, 8806, 730, 6011, 2392, 3633, 799, 652, 7033, 8140, 9597, 2512, 4903, 7442, 404, 9919, 8381, 7926, 6947, 1455, 9355, 4401, 6625, 6630, 3555, 6951, 5846, 5446, 2468, 5468, 6682, 5889, 8435, 3226, 1067, 5441, 9289, 941, 4542, 2381, 3529, 6555, 6906, 7342, 6419, 3707, 9616, 3540, 8149, 7887, 7640, 1402, 9973, 1850, 3197, 8012, 5865, 9806, 2454, 5921, 8675, 9251, 5076, 5896, 4381, 3198, 8474, 8139, 9004, 2913, 3750, 1056, 879, 7595, 5596, 3918, 4810, 2250, 7299, 975, 755, 3933, 4839, 5067, 5024, 4168, 9132, 9048, 1530, 8823, 6790, 4186, 9585, 9716, 9247, 5181, 6429, 4521, 9277, 5452, 2837, 4998, 3064, 8140, 9128, 6975, 8894, 1836, 8438, 7259, 6839, 9202, 8140, 9467, 8550, 340, 9503, 4884, 7334, 6377, 7882, 6384, 323, 6877, 6175, 7827, 4877, 770, 9782, 448, 5447, 3478, 6277, 5059, 9416, 5257, 8509, 3188, 401, 8335, 3877, 4696, 3544, 7297, 8514, 3810, 2989, 697, 4262, 1444, 9760, 6604, 39, 8841, 8791, 4645, 9337, 3792, 1067, 6013, 7394, 8412, 570, 8842, 6488, 5941, 984, 7169, 8771, 3004, 2832, 6381, 6676, 5194, 8110, 5805, 502, 5097, 3312, 8483, 2873, 6914, 8820, 6252, 4125, 604, 4302, 6959, 4385, 2509, 8977, 1036, 7142, 7791, 6343, 6138, 4284, 1921, 1360, 6457, 2676, 2706, 1194, 2334, 685, 2310, 7683, 1207, 6515, 7628, 3213, 7781, 3532, 2215, 9516, 1252, 7618, 5677, 6119, 2277, 161, 5074, 5189, 9622, 5480, 8179, 6064, 5648, 4788, 3416, 4990, 1294, 2675, 8840, 5569, 5773, 7825, 2863, 1194, 1608, 9276, 6078, 3177, 1306, 1640, 6128, 3646, 9975, 782, 4222, 2257, 1862, 961, 171, 6226, 8246, 2518, 5530, 6400, 7159, 6827, 4973, 1233, 7128, 8943, 274, 6198, 5731, 6412, 8939, 2104, 6610, 9413, 432, 8146, 3749, 872, 6313, 3288, 3996, 4947, 8061, 951, 6489, 8138, 5538, 4874, 5912, 3601, 5092, 3075, 1347, 4895, 9750, 3328, 6214, 9840, 6211, 8739, 8432, 5048, 7852, 4629, 9560, 749, 125, 2470, 3716, 5019, 6606, 4789, 3767, 3162, 2401, 4626, 7501, 9685, 1664, 1498, 7399, 3614, 733, 4372, 7476, 717, 362, 5458, 451, 6479, 689, 5585, 1814, 1263, 8639, 1493, 1713, 1758, 1248, 2784, 8301, 195, 136, 5153, 2911, 7235, 4695, 9857, 6117, 1377, 5817, 8592, 821, 6667, 8220, 1750, 3718, 4717, 4187, 1863, 3544, 35, 5950, 9590, 9959, 7377, 298, 5905, 4005, 2977, 7185, 3063, 6324, 2641, 6583, 5862, 3561, 4027, 9663, 7452, 2014, 715, 1188, 727, 7588, 161, 8974, 2640, 4033, 8914, 6057, 3410, 4029, 3548, 1475, 1728, 4049, 8514, 5844, 4623, 683, 5961, 3166, 5103, 6882, 151, 3446, 3544, 4011, 4275, 9844, 4631, 8440, 6305, 4064, 6187, 6357, 8187, 2627, 6992, 7640, 2995, 5032, 4979, 2946, 2867, 6647, 8490, 6046, 8716, 2940, 6100, 3831, 2117, 9903, 1955, 4658, 1560, 612, 2821, 5757, 4032, 8045, 6169, 9676, 7382, 2658, 7553, 8001, 4818, 8583, 7737, 3553, 514, 3655, 3115, 3306, 8872, 7226, 4469, 5083, 4733, 8397, 3427, 2688, 4317, 6283, 237, 4694, 1543, 9036, 2908, 2657, 7886, 6910, 3149, 3044, 4782, 666, 747, 3771, 9015, 7360, 3373, 3885, 630, 2613, 4549, 6460, 4884, 3862, 6288, 4234, 8746, 4395, 4695, 600, 4085, 2826, 436, 5678, 2396, 539, 4124, 4705, 3578, 6423, 1511, 1956, 2638, 8754, 6517, 7839, 1803, 9538, 6963, 8318, 5751, 858, 4471, 7075, 339, 9850, 56, 1086, 6028, 9200, 3889, 8057, 8959, 4452, 859, 8683, 9055, 9355, 1952, 2227, 6823, 1855, 727, 313, 1855, 6521, 3027, 2588, 5426, 9562, 7997, 7120, 7135, 9738, 1251, 4386, 1002, 9841, 8089, 1552, 8779, 9341, 4920, 6002, 9028, 1537, 9573, 453, 7804, 6758, 5496, 2940, 3184, 9970, 3574, 8542, 6527, 9962, 7159, 9887, 5170, 6453, 3350, 2978, 4268, 7803, 8834, 5494, 6552, 1144, 4282, 2489, 1898, 5282, 4316, 5009, 8223, 904, 352, 5314, 8700, 7966, 5976, 2108, 7830, 4489, 7667, 6172, 4985, 9042, 3500, 6257, 3003, 2707, 7154, 7364, 5230, 9951, 522, 3528, 5590, 807, 7702, 6989, 8449, 797, 7394, 2447, 4189, 466, 2326, 3852, 4524, 4890, 208, 8655, 9339, 5563, 7609, 4465, 5728, 6820, 891, 6604, 4436, 3041, 5516, 5656, 3320, 6002, 2805, 7347, 4545, 455, 9070, 7885, 1497, 8471, 2514, 6513, 4520, 8149, 5223, 4553, 7059, 7375, 9984, 2158, 6437, 1859, 5222, 1154, 2153, 9338, 1607, 3780, 8524, 5783, 3891, 9460, 9301, 5407, 8325, 8545, 5394, 3252, 3524, 279, 6966, 5020, 7187, 8076, 8211, 6684, 7931, 1524, 466, 8927, 7444, 2627, 4914, 6808, 2917, 9163, 7795, 1425, 1361, 3781, 4592, 1104, 1166, 2276, 4006, 6920, 8053, 8982, 1433, 3202, 5351, 4702, 587, 4112, 9696, 3072, 9157, 7035, 3430, 1075, 2236, 886, 8646, 9584, 2336, 7238, 5625, 9327, 9750, 4818, 6783, 9342, 7161, 8318, 5197, 2691, 3270, 9797, 4405, 9980, 9003, 6776, 2737, 2958, 955, 7768, 6948, 2470, 1005, 6311, 1088, 8782, 4367, 9570, 9407, 2618, 238, 5676, 5730, 808, 3141, 8867, 7607, 1172, 6699, 2985, 6047, 7932, 3186, 5713, 518, 5749, 5283, 5406, 3541, 8150, 6674, 3632, 6577, 2318, 5297, 4267, 2583, 1824, 1212, 6416, 703, 6312, 9222, 2187, 1429, 2616, 9969, 9557, 2533, 7255, 6357, 8514, 2678, 1233, 6817, 1843, 4156, 9830, 2674, 7919, 4369, 6261, 6781, 691, 8628, 8000, 8798, 9139, 1, 2900, 4774, 1863, 959, 5893, 8969, 5137, 9138, 9665, 5453, 462, 7073, 498, 2574, 0, 7989, 6622, 8332, 5934, 7817, 6385, 602, 8762, 4365, 6536, 8396, 6260, 877, 8286, 3184, 1097, 8628, 7469, 4922, 1129, 2661, 4344, 2313, 1336, 1660, 3690, 1751, 6663, 7816, 4589, 3958, 6075, 7108, 3325, 6154, 6081, 7935, 9396, 3261, 5538, 9838, 1241, 4473, 196, 3985, 7603, 9781, 4903, 9691, 9832, 3649, 1176, 9529, 416, 46, 6915, 3599, 8935, 2270, 2275, 2368, 9837, 8469, 3887, 6374, 4921, 9031, 2612, 2538, 8002, 5591, 8079, 3338, 9318, 105, 7468, 4719, 4162, 8258, 1778, 8931, 9740, 5767, 9119, 8951, 7606, 5444, 9202, 7285, 2046, 6644, 3952, 3851, 9917, 4651, 4451, 71, 2527, 1069, 5191, 8605, 6499, 355, 2291, 506, 4564, 9129, 8574, 2160, 9942, 1453, 1438, 9514, 8268, 8163, 7675, 1159, 81, 8994, 8974, 8325, 7011, 9558, 3689, 5499, 2706, 4814, 6706, 5000, 278, 5229, 4760, 2976, 5998, 7901, 3508, 9265, 4550, 6062, 7148, 9356, 7847, 1714, 722, 8482, 9885, 833, 6179, 6695, 723, 1195, 3346, 8163, 4194, 1182, 9711, 5003, 9385, 3281, 1287, 8, 6899, 2832, 9097, 7203, 5595, 8411, 5079, 5199, 4021, 125, 4071, 1095, 7012, 4464, 5305, 2074, 9142, 483, 8307, 5048, 4885, 7058, 3663, 8146, 343, 7307, 9160, 8723, 198, 8083, 5066, 6692, 5015, 3435, 5806, 7794, 571, 3434, 8524, 3216, 9740, 5463, 472, 3264, 613, 6145, 2342, 5112, 3173, 2759, 7911, 8488, 2063, 9294] Selection Sort Number of Comparisons: 12497500 Number of Swaps: 4989 Bubble Sort Number of Comparisons: 12497500 Number of Swaps: 6183498 Merge Sort Number of Comparisons: 137005 Number of Swaps: 61808 Insertion Sort Number of Comparisons: 6188497 Number of Swaps: 6188491 Making sure they all work... Selection: [0, 0, 1, 3, 8, 10, 11, 12, 14, 16, 16, 20, 21, 22, 22, 27, 28, 30, 32, 34, 35, 36, 38, 39, 39, 40, 41, 43, 44, 45, 45, 46, 50, 52, 52, 56, 57, 63, 64, 64, 69, 71, 74, 74, 78, 79, 79, 80, 81, 82, 85, 85, 90, 90, 94, 98, 99, 99, 100, 105, 114, 118, 118, 125, 125, 126, 126, 128, 128, 129, 129, 132, 136, 138, 139, 141, 147, 151, 154, 157, 161, 161, 161, 162, 168, 171, 177, 185, 190, 192, 195, 196, 198, 201, 203, 207, 208, 208, 213, 214, 218, 219, 221, 227, 228, 229, 233, 233, 237, 238, 238, 257, 258, 261, 264, 266, 274, 274, 278, 278, 279, 279, 284, 287, 288, 291, 292, 294, 295, 298, 306, 308, 308, 310, 312, 313, 315, 320, 320, 323, 323, 324, 328, 330, 338, 338, 338, 339, 340, 340, 342, 343, 347, 348, 349, 349, 351, 352, 355, 359, 362, 362, 362, 366, 367, 368, 370, 371, 373, 378, 379, 382, 385, 398, 400, 401, 401, 402, 403, 404, 404, 405, 406, 406, 408, 408, 409, 412, 412, 413, 414, 415, 416, 421, 425, 428, 428, 430, 431, 432, 433, 436, 438, 439, 440, 444, 447, 448, 449, 451, 452, 452, 453, 454, 455, 456, 458, 461, 462, 463, 465, 466, 466, 468, 469, 470, 471, 472, 473, 473, 474, 477, 481, 482, 482, 483, 484, 485, 487, 493, 498, 498, 499, 500, 500, 501, 502, 503, 503, 504, 504, 506, 509, 509, 510, 510, 514, 515, 518, 522, 524, 527, 528, 534, 534, 539, 539, 541, 544, 548, 552, 553, 554, 557, 559, 559, 562, 564, 569, 570, 571, 572, 575, 577, 581, 587, 587, 588, 590, 600, 602, 604, 609, 612, 612, 613, 614, 618, 619, 619, 623, 630, 630, 632, 634, 634, 635, 640, 640, 641, 641, 642, 642, 648, 650, 652, 655, 662, 663, 666, 666, 670, 674, 675, 678, 683, 685, 685, 687, 688, 689, 691, 693, 694, 697, 697, 700, 701, 701, 703, 703, 704, 705, 706, 708, 709, 712, 713, 715, 717, 719, 719, 722, 722, 723, 725, 727, 727, 730, 732, 733, 735, 736, 738, 740, 741, 741, 741, 742, 747, 747, 749, 754, 755, 758, 760, 763, 763, 763, 765, 770, 778, 780, 781, 781, 781, 782, 782, 787, 791, 795, 796, 797, 799, 803, 807, 808, 809, 810, 810, 811, 816, 818, 819, 819, 821, 821, 823, 824, 825, 826, 828, 829, 833, 835, 837, 844, 845, 849, 851, 858, 859, 864, 864, 866, 872, 877, 879, 881, 885, 886, 891, 891, 891, 899, 900, 904, 905, 908, 912, 912, 916, 920, 923, 927, 932, 933, 933, 935, 937, 937, 941, 942, 946, 946, 948, 951, 951, 953, 955, 956, 959, 959, 960, 961, 968, 975, 975, 977, 978, 979, 983, 983, 984, 1000, 1002, 1002, 1004, 1005, 1008, 1009, 1013, 1016, 1018, 1019, 1020, 1022, 1026, 1028, 1030, 1033, 1034, 1036, 1037, 1042, 1042, 1042, 1044, 1046, 1047, 1051, 1054, 1056, 1065, 1066, 1067, 1067, 1067, 1067, 1069, 1070, 1075, 1080, 1084, 1085, 1085, 1086, 1088, 1089, 1095, 1097, 1102, 1103, 1103, 1104, 1107, 1107, 1108, 1109, 1116, 1116, 1125, 1128, 1128, 1129, 1129, 1129, 1131, 1140, 1140, 1143, 1144, 1144, 1145, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1166, 1168, 1172, 1176, 1179, 1179, 1180, 1182, 1184, 1186, 1188, 1191, 1194, 1194, 1194, 1195, 1198, 1204, 1205, 1207, 1207, 1208, 1208, 1209, 1212, 1219, 1225, 1231, 1232, 1233, 1233, 1236, 1239, 1241, 1247, 1248, 1249, 1250, 1251, 1252, 1255, 1257, 1257, 1258, 1261, 1263, 1263, 1264, 1267, 1275, 1279, 1281, 1282, 1283, 1285, 1287, 1289, 1290, 1294, 1301, 1301, 1301, 1304, 1306, 1306, 1306, 1306, 1313, 1319, 1322, 1322, 1323, 1325, 1328, 1331, 1331, 1331, 1332, 1335, 1336, 1337, 1339, 1342, 1344, 1347, 1360, 1361, 1361, 1363, 1366, 1367, 1370, 1372, 1375, 1376, 1377, 1377, 1380, 1382, 1383, 1383, 1389, 1389, 1392, 1395, 1397, 1397, 1398, 1401, 1402, 1402, 1403, 1404, 1410, 1412, 1415, 1416, 1422, 1422, 1423, 1424, 1425, 1426, 1427, 1429, 1433, 1433, 1434, 1437, 1438, 1441, 1442, 1444, 1446, 1450, 1453, 1453, 1454, 1455, 1456, 1456, 1459, 1462, 1462, 1469, 1470, 1470, 1470, 1473, 1475, 1476, 1478, 1478, 1480, 1486, 1488, 1493, 1493, 1494, 1495, 1497, 1498, 1498, 1500, 1504, 1504, 1506, 1507, 1508, 1511, 1511, 1513, 1515, 1523, 1524, 1524, 1526, 1530, 1532, 1535, 1537, 1540, 1541, 1542, 1542, 1543, 1544, 1546, 1552, 1554, 1555, 1559, 1560, 1560, 1564, 1571, 1578, 1581, 1582, 1583, 1586, 1589, 1596, 1596, 1597, 1603, 1606, 1607, 1608, 1609, 1611, 1612, 1615, 1616, 1618, 1621, 1621, 1623, 1625, 1632, 1633, 1634, 1635, 1640, 1642, 1648, 1648, 1649, 1658, 1659, 1660, 1664, 1665, 1669, 1681, 1685, 1688, 1689, 1689, 1695, 1695, 1699, 1700, 1710, 1712, 1713, 1713, 1714, 1718, 1720, 1721, 1728, 1728, 1730, 1732, 1735, 1736, 1739, 1741, 1744, 1750, 1751, 1751, 1755, 1758, 1763, 1763, 1764, 1768, 1774, 1774, 1778, 1779, 1779, 1784, 1789, 1789, 1792, 1792, 1792, 1795, 1797, 1801, 1803, 1807, 1809, 1814, 1816, 1816, 1818, 1821, 1824, 1825, 1829, 1833, 1836, 1836, 1836, 1838, 1838, 1843, 1847, 1850, 1850, 1853, 1855, 1855, 1855, 1855, 1857, 1859, 1861, 1862, 1863, 1863, 1863, 1863, 1864, 1865, 1866, 1868, 1870, 1874, 1878, 1879, 1880, 1882, 1884, 1891, 1895, 1895, 1896, 1898, 1901, 1902, 1904, 1905, 1907, 1908, 1909, 1910, 1917, 1919, 1921, 1921, 1925, 1932, 1933, 1936, 1938, 1944, 1946, 1952, 1953, 1954, 1955, 1956, 1956, 1958, 1961, 1963, 1968, 1970, 1973, 1976, 1977, 1977, 1981, 1983, 1984, 1988, 1994, 1994, 2001, 2002, 2011, 2011, 2014, 2014, 2014, 2014, 2016, 2018, 2020, 2024, 2027, 2029, 2029, 2034, 2035, 2035, 2037, 2039, 2041, 2045, 2045, 2046, 2047, 2049, 2051, 2062, 2063, 2063, 2063, 2066, 2072, 2074, 2078, 2079, 2082, 2087, 2088, 2089, 2091, 2094, 2096, 2097, 2103, 2103, 2104, 2104, 2105, 2108, 2116, 2117, 2120, 2125, 2128, 2129, 2131, 2135, 2138, 2144, 2150, 2150, 2151, 2152, 2153, 2153, 2158, 2160, 2161, 2163, 2164, 2165, 2170, 2172, 2173, 2176, 2179, 2187, 2187, 2189, 2190, 2190, 2190, 2191, 2193, 2198, 2198, 2198, 2202, 2205, 2206, 2208, 2209, 2211, 2213, 2215, 2215, 2220, 2220, 2222, 2227, 2228, 2229, 2230, 2233, 2236, 2236, 2242, 2242, 2248, 2250, 2256, 2256, 2257, 2259, 2261, 2263, 2266, 2267, 2268, 2270, 2270, 2271, 2273, 2275, 2275, 2276, 2277, 2277, 2277, 2277, 2278, 2279, 2285, 2286, 2288, 2290, 2291, 2306, 2310, 2311, 2313, 2314, 2315, 2318, 2319, 2325, 2325, 2326, 2328, 2331, 2334, 2335, 2336, 2342, 2343, 2345, 2347, 2353, 2354, 2355, 2358, 2359, 2359, 2362, 2362, 2368, 2370, 2371, 2376, 2379, 2381, 2381, 2388, 2388, 2390, 2392, 2394, 2395, 2396, 2396, 2401, 2401, 2403, 2403, 2407, 2414, 2420, 2423, 2423, 2423, 2424, 2426, 2427, 2432, 2432, 2433, 2433, 2435, 2435, 2439, 2440, 2447, 2448, 2454, 2454, 2458, 2461, 2467, 2468, 2469, 2470, 2470, 2471, 2472, 2475, 2475, 2478, 2479, 2484, 2486, 2489, 2490, 2492, 2494, 2498, 2498, 2507, 2508, 2508, 2509, 2510, 2510, 2512, 2514, 2514, 2514, 2515, 2518, 2518, 2520, 2523, 2523, 2525, 2526, 2527, 2527, 2529, 2533, 2533, 2538, 2539, 2543, 2550, 2552, 2552, 2557, 2559, 2567, 2571, 2573, 2574, 2577, 2583, 2586, 2587, 2588, 2590, 2592, 2598, 2604, 2607, 2608, 2608, 2608, 2608, 2612, 2613, 2614, 2616, 2618, 2620, 2625, 2626, 2627, 2627, 2629, 2636, 2636, 2638, 2639, 2640, 2641, 2650, 2650, 2651, 2657, 2657, 2658, 2658, 2660, 2660, 2661, 2662, 2667, 2673, 2673, 2674, 2675, 2676, 2676, 2678, 2685, 2686, 2687, 2688, 2689, 2689, 2691, 2691, 2693, 2697, 2697, 2702, 2705, 2706, 2706, 2707, 2707, 2713, 2714, 2719, 2722, 2734, 2734, 2737, 2738, 2739, 2744, 2747, 2748, 2751, 2755, 2757, 2759, 2761, 2764, 2767, 2768, 2784, 2784, 2784, 2787, 2788, 2789, 2790, 2794, 2801, 2801, 2805, 2805, 2810, 2811, 2814, 2817, 2817, 2820, 2821, 2826, 2827, 2828, 2829, 2829, 2830, 2831, 2832, 2832, 2832, 2833, 2834, 2835, 2835, 2836, 2837, 2838, 2842, 2845, 2847, 2849, 2849, 2851, 2851, 2855, 2859, 2859, 2863, 2864, 2866, 2867, 2870, 2870, 2872, 2873, 2875, 2876, 2877, 2878, 2878, 2878, 2881, 2885, 2889, 2890, 2892, 2894, 2895, 2897, 2898, 2898, 2899, 2900, 2900, 2902, 2903, 2906, 2908, 2908, 2911, 2913, 2917, 2920, 2923, 2928, 2928, 2928, 2929, 2929, 2936, 2936, 2937, 2940, 2940, 2941, 2946, 2946, 2948, 2952, 2956, 2958, 2961, 2966, 2969, 2969, 2970, 2971, 2973, 2973, 2976, 2977, 2978, 2980, 2985, 2985, 2985, 2987, 2989, 2989, 2994, 2995, 3000, 3000, 3002, 3003, 3004, 3005, 3009, 3012, 3015, 3016, 3018, 3018, 3019, 3020, 3021, 3024, 3027, 3027, 3028, 3028, 3035, 3038, 3041, 3041, 3043, 3044, 3045, 3046, 3047, 3049, 3049, 3050, 3050, 3051, 3054, 3055, 3056, 3059, 3061, 3063, 3064, 3067, 3069, 3069, 3070, 3072, 3075, 3075, 3076, 3078, 3084, 3087, 3087, 3088, 3089, 3093, 3093, 3099, 3102, 3111, 3111, 3113, 3113, 3114, 3115, 3115, 3116, 3122, 3125, 3127, 3129, 3130, 3130, 3134, 3137, 3139, 3141, 3141, 3142, 3142, 3146, 3147, 3148, 3149, 3150, 3151, 3156, 3156, 3162, 3163, 3165, 3166, 3168, 3169, 3171, 3171, 3171, 3171, 3172, 3173, 3176, 3176, 3177, 3178, 3184, 3184, 3184, 3184, 3186, 3188, 3188, 3190, 3190, 3190, 3190, 3191, 3192, 3197, 3197, 3198, 3198, 3199, 3202, 3206, 3206, 3211, 3213, 3213, 3213, 3214, 3216, 3217, 3218, 3218, 3226, 3226, 3227, 3227, 3229, 3233, 3237, 3239, 3245, 3248, 3251, 3252, 3253, 3255, 3256, 3258, 3261, 3263, 3264, 3266, 3269, 3269, 3270, 3271, 3280, 3281, 3281, 3282, 3285, 3285, 3287, 3287, 3288, 3288, 3294, 3295, 3300, 3306, 3307, 3311, 3312, 3315, 3318, 3319, 3320, 3320, 3325, 3327, 3328, 3329, 3332, 3337, 3338, 3338, 3342, 3343, 3344, 3346, 3350, 3351, 3352, 3352, 3355, 3362, 3365, 3365, 3366, 3368, 3368, 3369, 3373, 3376, 3381, 3382, 3385, 3392, 3394, 3403, 3404, 3404, 3405, 3410, 3410, 3416, 3416, 3419, 3423, 3427, 3428, 3430, 3434, 3434, 3434, 3435, 3437, 3440, 3446, 3447, 3455, 3456, 3466, 3471, 3472, 3476, 3478, 3490, 3491, 3495, 3498, 3500, 3501, 3503, 3504, 3504, 3505, 3506, 3507, 3507, 3508, 3508, 3508, 3508, 3512, 3513, 3514, 3514, 3514, 3520, 3521, 3521, 3523, 3524, 3524, 3528, 3528, 3528, 3529, 3529, 3530, 3530, 3532, 3532, 3533, 3535, 3535, 3538, 3539, 3539, 3539, 3540, 3541, 3542, 3544, 3544, 3544, 3544, 3546, 3547, 3548, 3548, 3551, 3552, 3553, 3555, 3555, 3560, 3561, 3564, 3565, 3570, 3574, 3574, 3578, 3585, 3585, 3587, 3587, 3588, 3588, 3593, 3595, 3598, 3599, 3600, 3601, 3603, 3610, 3610, 3611, 3612, 3612, 3613, 3613, 3614, 3614, 3615, 3615, 3616, 3617, 3618, 3624, 3628, 3628, 3628, 3630, 3632, 3633, 3634, 3634, 3635, 3637, 3638, 3642, 3645, 3646, 3647, 3648, 3649, 3650, 3654, 3655, 3660, 3663, 3669, 3673, 3673, 3679, 3689, 3689, 3690, 3690, 3691, 3697, 3703, 3703, 3707, 3709, 3710, 3712, 3712, 3714, 3715, 3716, 3717, 3718, 3724, 3726, 3726, 3727, 3734, 3734, 3738, 3738, 3739, 3739, 3743, 3743, 3746, 3747, 3747, 3749, 3750, 3753, 3754, 3759, 3760, 3760, 3761, 3761, 3763, 3764, 3764, 3765, 3767, 3767, 3771, 3771, 3771, 3771, 3772, 3773, 3775, 3776, 3780, 3781, 3787, 3790, 3791, 3792, 3792, 3792, 3793, 3794, 3794, 3796, 3796, 3799, 3801, 3804, 3806, 3810, 3810, 3810, 3811, 3816, 3819, 3820, 3824, 3824, 3825, 3831, 3833, 3834, 3835, 3839, 3845, 3845, 3846, 3846, 3847, 3851, 3852, 3852, 3852, 3854, 3857, 3860, 3862, 3862, 3862, 3862, 3866, 3866, 3867, 3871, 3877, 3877, 3878, 3879, 3884, 3885, 3885, 3887, 3889, 3889, 3891, 3894, 3894, 3899, 3904, 3907, 3910, 3912, 3913, 3914, 3917, 3918, 3920, 3922, 3926, 3929, 3930, 3932, 3933, 3933, 3937, 3939, 3939, 3940, 3942, 3951, 3952, 3957, 3958, 3958, 3963, 3963, 3968, 3970, 3970, 3972, 3974, 3975, 3976, 3977, 3980, 3981, 3981, 3985, 3987, 3988, 3989, 3991, 3992, 3993, 3994, 3996, 4003, 4003, 4005, 4006, 4007, 4011, 4011, 4011, 4012, 4012, 4012, 4015, 4015, 4015, 4018, 4021, 4025, 4027, 4029, 4032, 4032, 4033, 4034, 4037, 4040, 4042, 4045, 4047, 4048, 4049, 4049, 4049, 4050, 4050, 4055, 4058, 4059, 4060, 4062, 4064, 4064, 4069, 4071, 4072, 4072, 4072, 4085, 4086, 4086, 4088, 4092, 4096, 4097, 4099, 4099, 4100, 4112, 4115, 4116, 4118, 4119, 4120, 4124, 4124, 4125, 4125, 4129, 4133, 4136, 4137, 4139, 4140, 4140, 4143, 4150, 4155, 4156, 4158, 4161, 4162, 4163, 4164, 4166, 4167, 4168, 4171, 4174, 4178, 4186, 4187, 4187, 4188, 4189, 4192, 4194, 4198, 4202, 4206, 4208, 4211, 4213, 4214, 4219, 4222, 4222, 4223, 4224, 4226, 4228, 4229, 4230, 4234, 4234, 4243, 4244, 4249, 4251, 4252, 4255, 4260, 4261, 4262, 4262, 4262, 4263, 4265, 4267, 4268, 4269, 4273, 4274, 4275, 4275, 4276, 4276, 4280, 4280, 4280, 4282, 4284, 4288, 4289, 4290, 4295, 4295, 4296, 4299, 4302, 4303, 4305, 4306, 4307, 4311, 4316, 4317, 4317, 4324, 4326, 4331, 4334, 4334, 4341, 4344, 4347, 4350, 4350, 4359, 4360, 4360, 4361, 4363, 4365, 4365, 4367, 4367, 4368, 4369, 4371, 4372, 4372, 4374, 4380, 4381, 4383, 4385, 4386, 4388, 4389, 4390, 4391, 4394, 4395, 4399, 4401, 4402, 4405, 4406, 4409, 4415, 4415, 4417, 4423, 4424, 4428, 4428, 4428, 4432, 4434, 4434, 4436, 4439, 4440, 4442, 4442, 4444, 4448, 4449, 4451, 4452, 4452, 4455, 4457, 4458, 4463, 4464, 4465, 4466, 4468, 4469, 4470, 4471, 4471, 4471, 4473, 4475, 4476, 4479, 4479, 4482, 4489, 4492, 4493, 4493, 4495, 4496, 4496, 4498, 4499, 4499, 4501, 4504, 4505, 4506, 4508, 4508, 4515, 4520, 4520, 4521, 4521, 4522, 4524, 4524, 4532, 4532, 4536, 4537, 4540, 4541, 4542, 4543, 4545, 4545, 4545, 4549, 4549, 4550, 4552, 4553, 4554, 4554, 4560, 4562, 4563, 4564, 4566, 4567, 4568, 4569, 4575, 4575, 4578, 4578, 4580, 4581, 4583, 4589, 4589, 4592, 4595, 4596, 4597, 4597, 4601, 4602, 4603, 4605, 4605, 4606, 4608, 4610, 4619, 4622, 4623, 4623, 4626, 4628, 4629, 4630, 4631, 4634, 4635, 4635, 4637, 4638, 4639, 4645, 4646, 4646, 4648, 4651, 4652, 4653, 4655, 4656, 4657, 4658, 4662, 4663, 4667, 4669, 4669, 4670, 4673, 4675, 4676, 4677, 4677, 4680, 4687, 4687, 4688, 4693, 4694, 4695, 4695, 4696, 4696, 4697, 4700, 4701, 4702, 4705, 4706, 4708, 4714, 4717, 4719, 4719, 4723, 4724, 4726, 4732, 4733, 4738, 4738, 4741, 4742, 4754, 4754, 4757, 4758, 4758, 4759, 4760, 4763, 4763, 4763, 4766, 4766, 4768, 4769, 4769, 4769, 4771, 4771, 4774, 4774, 4779, 4782, 4782, 4783, 4784, 4788, 4788, 4789, 4790, 4792, 4795, 4795, 4796, 4797, 4799, 4806, 4807, 4810, 4810, 4812, 4814, 4815, 4818, 4818, 4819, 4827, 4828, 4832, 4836, 4839, 4840, 4840, 4842, 4848, 4851, 4852, 4856, 4860, 4860, 4863, 4863, 4864, 4865, 4870, 4871, 4871, 4871, 4874, 4877, 4877, 4880, 4881, 4882, 4884, 4884, 4884, 4885, 4889, 4890, 4891, 4891, 4892, 4893, 4893, 4895, 4902, 4903, 4903, 4907, 4912, 4913, 4914, 4916, 4920, 4921, 4921, 4922, 4927, 4932, 4935, 4936, 4937, 4939, 4943, 4945, 4946, 4947, 4952, 4961, 4965, 4965, 4966, 4967, 4971, 4973, 4974, 4979, 4982, 4983, 4983, 4985, 4986, 4988, 4989, 4990, 4998, 5000, 5000, 5001, 5002, 5003, 5004, 5004, 5009, 5015, 5019, 5020, 5021, 5021, 5021, 5022, 5023, 5024, 5025, 5027, 5032, 5036, 5037, 5039, 5039, 5047, 5048, 5048, 5049, 5055, 5057, 5058, 5059, 5060, 5066, 5066, 5067, 5074, 5075, 5076, 5077, 5079, 5081, 5081, 5083, 5083, 5086, 5086, 5086, 5086, 5089, 5092, 5093, 5094, 5097, 5098, 5101, 5102, 5103, 5103, 5103, 5110, 5111, 5112, 5113, 5114, 5119, 5125, 5126, 5132, 5137, 5139, 5139, 5143, 5144, 5145, 5145, 5146, 5146, 5149, 5152, 5153, 5153, 5153, 5153, 5154, 5155, 5158, 5158, 5163, 5164, 5165, 5165, 5167, 5168, 5170, 5171, 5175, 5181, 5186, 5189, 5191, 5192, 5194, 5195, 5197, 5197, 5197, 5199, 5201, 5205, 5210, 5213, 5215, 5215, 5222, 5222, 5222, 5223, 5223, 5225, 5226, 5227, 5228, 5229, 5229, 5230, 5236, 5237, 5237, 5240, 5246, 5247, 5248, 5248, 5249, 5250, 5254, 5255, 5256, 5257, 5258, 5262, 5267, 5269, 5272, 5274, 5277, 5280, 5282, 5282, 5282, 5282, 5283, 5286, 5290, 5291, 5294, 5295, 5296, 5297, 5298, 5299, 5299, 5300, 5301, 5301, 5303, 5305, 5308, 5310, 5310, 5313, 5314, 5314, 5315, 5323, 5327, 5334, 5334, 5335, 5340, 5347, 5347, 5348, 5351, 5353, 5359, 5372, 5379, 5382, 5382, 5384, 5384, 5388, 5389, 5391, 5394, 5396, 5406, 5406, 5406, 5407, 5409, 5410, 5413, 5413, 5414, 5416, 5416, 5418, 5420, 5424, 5425, 5425, 5426, 5429, 5430, 5430, 5434, 5435, 5438, 5441, 5441, 5444, 5444, 5444, 5446, 5447, 5447, 5448, 5449, 5450, 5452, 5453, 5453, 5453, 5454, 5457, 5457, 5458, 5463, 5463, 5464, 5464, 5465, 5467, 5468, 5468, 5470, 5471, 5471, 5477, 5478, 5480, 5484, 5484, 5486, 5487, 5491, 5493, 5494, 5496, 5497, 5497, 5499, 5499, 5501, 5503, 5511, 5513, 5516, 5517, 5518, 5519, 5522, 5524, 5528, 5529, 5530, 5533, 5535, 5536, 5538, 5538, 5538, 5542, 5544, 5546, 5546, 5553, 5554, 5555, 5556, 5560, 5562, 5563, 5563, 5563, 5568, 5569, 5576, 5577, 5582, 5583, 5585, 5586, 5587, 5590, 5591, 5595, 5596, 5596, 5598, 5603, 5604, 5607, 5608, 5612, 5614, 5625, 5625, 5627, 5635, 5639, 5640, 5643, 5643, 5648, 5651, 5651, 5652, 5653, 5655, 5655, 5656, 5660, 5661, 5661, 5662, 5665, 5665, 5667, 5667, 5668, 5673, 5676, 5677, 5677, 5677, 5678, 5679, 5680, 5684, 5689, 5696, 5697, 5698, 5701, 5713, 5714, 5714, 5717, 5717, 5720, 5721, 5724, 5728, 5730, 5731, 5732, 5732, 5733, 5738, 5739, 5740, 5740, 5746, 5746, 5749, 5751, 5751, 5752, 5752, 5755, 5756, 5757, 5757, 5759, 5760, 5761, 5767, 5771, 5772, 5773, 5776, 5781, 5782, 5782, 5783, 5787, 5788, 5792, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5810, 5810, 5811, 5812, 5812, 5817, 5817, 5817, 5819, 5820, 5822, 5822, 5824, 5829, 5833, 5833, 5836, 5838, 5841, 5842, 5843, 5844, 5846, 5849, 5856, 5859, 5860, 5861, 5862, 5862, 5863, 5865, 5868, 5869, 5870, 5879, 5879, 5886, 5886, 5886, 5887, 5887, 5889, 5889, 5892, 5893, 5893, 5896, 5897, 5899, 5905, 5910, 5912, 5912, 5913, 5915, 5915, 5916, 5917, 5919, 5920, 5920, 5921, 5925, 5928, 5928, 5934, 5935, 5937, 5937, 5938, 5940, 5941, 5942, 5944, 5946, 5948, 5948, 5950, 5951, 5956, 5961, 5962, 5962, 5962, 5966, 5966, 5970, 5972, 5974, 5975, 5976, 5976, 5981, 5982, 5985, 5985, 5985, 5985, 5987, 5992, 5993, 5994, 5995, 5998, 6001, 6002, 6002, 6002, 6006, 6011, 6013, 6016, 6019, 6023, 6024, 6024, 6025, 6028, 6029, 6030, 6031, 6032, 6035, 6037, 6045, 6045, 6046, 6047, 6049, 6051, 6053, 6054, 6057, 6057, 6059, 6060, 6062, 6062, 6063, 6064, 6066, 6070, 6073, 6074, 6075, 6075, 6078, 6078, 6080, 6081, 6082, 6083, 6085, 6088, 6088, 6089, 6090, 6091, 6091, 6091, 6093, 6095, 6096, 6096, 6097, 6097, 6100, 6100, 6101, 6103, 6105, 6107, 6109, 6110, 6113, 6117, 6117, 6119, 6120, 6121, 6121, 6123, 6125, 6126, 6128, 6129, 6130, 6134, 6134, 6138, 6141, 6142, 6143, 6145, 6147, 6148, 6149, 6151, 6152, 6154, 6163, 6168, 6169, 6169, 6172, 6173, 6175, 6178, 6179, 6181, 6181, 6181, 6184, 6186, 6186, 6187, 6188, 6190, 6196, 6198, 6198, 6202, 6205, 6205, 6207, 6211, 6211, 6211, 6212, 6214, 6217, 6218, 6218, 6219, 6220, 6223, 6224, 6225, 6226, 6226, 6227, 6228, 6231, 6234, 6234, 6236, 6236, 6242, 6244, 6245, 6249, 6250, 6252, 6256, 6257, 6257, 6260, 6261, 6261, 6262, 6264, 6265, 6267, 6267, 6267, 6268, 6270, 6271, 6271, 6272, 6274, 6277, 6277, 6280, 6282, 6283, 6285, 6288, 6290, 6291, 6291, 6292, 6292, 6292, 6305, 6306, 6311, 6312, 6313, 6313, 6313, 6316, 6316, 6317, 6317, 6320, 6320, 6321, 6321, 6322, 6323, 6324, 6324, 6325, 6327, 6328, 6329, 6337, 6338, 6338, 6340, 6343, 6346, 6349, 6352, 6353, 6357, 6357, 6358, 6359, 6359, 6360, 6363, 6365, 6366, 6367, 6367, 6370, 6371, 6374, 6377, 6378, 6381, 6384, 6384, 6385, 6385, 6386, 6387, 6391, 6393, 6394, 6394, 6395, 6398, 6400, 6404, 6407, 6407, 6412, 6415, 6416, 6419, 6423, 6423, 6424, 6427, 6428, 6429, 6432, 6434, 6437, 6443, 6443, 6449, 6449, 6449, 6451, 6453, 6453, 6455, 6456, 6456, 6457, 6460, 6460, 6460, 6465, 6467, 6471, 6472, 6472, 6474, 6479, 6479, 6480, 6480, 6483, 6483, 6484, 6485, 6488, 6488, 6489, 6490, 6495, 6499, 6499, 6507, 6508, 6508, 6513, 6513, 6515, 6517, 6517, 6521, 6522, 6527, 6528, 6529, 6531, 6532, 6535, 6536, 6538, 6540, 6541, 6543, 6546, 6548, 6549, 6551, 6552, 6553, 6555, 6556, 6558, 6572, 6572, 6577, 6578, 6583, 6584, 6586, 6587, 6590, 6591, 6603, 6604, 6604, 6605, 6606, 6607, 6609, 6610, 6610, 6611, 6612, 6612, 6613, 6619, 6622, 6625, 6625, 6626, 6630, 6635, 6635, 6640, 6644, 6646, 6647, 6647, 6649, 6655, 6655, 6656, 6659, 6663, 6667, 6670, 6674, 6676, 6677, 6677, 6677, 6679, 6679, 6682, 6684, 6685, 6686, 6692, 6692, 6695, 6697, 6699, 6701, 6706, 6707, 6708, 6709, 6714, 6723, 6726, 6727, 6728, 6729, 6729, 6732, 6735, 6736, 6737, 6739, 6740, 6740, 6748, 6750, 6752, 6754, 6754, 6758, 6762, 6762, 6764, 6765, 6768, 6771, 6771, 6772, 6775, 6776, 6776, 6778, 6781, 6783, 6784, 6790, 6791, 6792, 6792, 6796, 6799, 6801, 6805, 6808, 6808, 6809, 6809, 6809, 6811, 6814, 6816, 6816, 6817, 6817, 6820, 6823, 6823, 6824, 6825, 6826, 6827, 6831, 6833, 6833, 6839, 6840, 6841, 6841, 6842, 6842, 6843, 6845, 6849, 6852, 6854, 6855, 6856, 6862, 6862, 6866, 6868, 6871, 6873, 6874, 6874, 6876, 6877, 6878, 6881, 6882, 6884, 6884, 6889, 6898, 6899, 6902, 6903, 6903, 6905, 6906, 6906, 6907, 6910, 6913, 6914, 6914, 6915, 6920, 6925, 6929, 6933, 6934, 6936, 6936, 6937, 6945, 6947, 6947, 6947, 6948, 6949, 6950, 6951, 6957, 6957, 6959, 6960, 6961, 6963, 6966, 6967, 6968, 6970, 6973, 6975, 6977, 6981, 6982, 6985, 6986, 6987, 6988, 6989, 6992, 6995, 6996, 6997, 6998, 6998, 6998, 7000, 7000, 7002, 7002, 7005, 7011, 7011, 7012, 7012, 7014, 7016, 7019, 7022, 7022, 7025, 7026, 7026, 7028, 7030, 7030, 7032, 7033, 7034, 7035, 7035, 7037, 7040, 7043, 7047, 7050, 7051, 7052, 7054, 7058, 7058, 7059, 7060, 7060, 7061, 7069, 7072, 7073, 7075, 7079, 7084, 7085, 7088, 7088, 7090, 7091, 7094, 7094, 7097, 7100, 7103, 7104, 7108, 7109, 7114, 7115, 7118, 7119, 7120, 7122, 7128, 7128, 7130, 7135, 7137, 7138, 7142, 7143, 7145, 7147, 7148, 7148, 7152, 7154, 7156, 7159, 7159, 7160, 7161, 7161, 7162, 7165, 7169, 7169, 7172, 7174, 7175, 7177, 7182, 7185, 7185, 7185, 7186, 7187, 7195, 7196, 7198, 7200, 7202, 7203, 7204, 7205, 7210, 7213, 7213, 7214, 7217, 7220, 7221, 7223, 7224, 7226, 7227, 7231, 7233, 7234, 7235, 7238, 7238, 7242, 7246, 7249, 7249, 7250, 7251, 7255, 7259, 7265, 7271, 7271, 7272, 7273, 7276, 7279, 7279, 7280, 7282, 7284, 7285, 7286, 7287, 7289, 7291, 7291, 7292, 7292, 7292, 7294, 7297, 7299, 7299, 7303, 7307, 7307, 7308, 7308, 7309, 7317, 7318, 7323, 7323, 7324, 7325, 7332, 7334, 7336, 7337, 7337, 7337, 7342, 7343, 7347, 7347, 7349, 7355, 7356, 7356, 7356, 7360, 7360, 7364, 7364, 7369, 7373, 7375, 7375, 7377, 7377, 7381, 7381, 7382, 7382, 7383, 7385, 7387, 7387, 7388, 7389, 7389, 7392, 7394, 7394, 7395, 7398, 7398, 7399, 7400, 7400, 7403, 7403, 7404, 7409, 7413, 7414, 7414, 7419, 7426, 7429, 7429, 7430, 7434, 7436, 7437, 7440, 7442, 7443, 7444, 7452, 7454, 7455, 7456, 7456, 7456, 7457, 7460, 7463, 7466, 7466, 7468, 7469, 7470, 7474, 7474, 7476, 7480, 7480, 7485, 7489, 7489, 7496, 7498, 7500, 7501, 7501, 7501, 7509, 7514, 7520, 7520, 7522, 7523, 7523, 7527, 7528, 7530, 7534, 7534, 7536, 7536, 7538, 7543, 7544, 7544, 7548, 7550, 7550, 7553, 7556, 7558, 7559, 7561, 7563, 7563, 7572, 7575, 7576, 7579, 7579, 7587, 7588, 7588, 7591, 7592, 7595, 7596, 7603, 7603, 7606, 7607, 7609, 7609, 7611, 7612, 7613, 7618, 7618, 7628, 7628, 7633, 7640, 7640, 7641, 7643, 7643, 7643, 7652, 7652, 7654, 7659, 7659, 7662, 7662, 7663, 7664, 7665, 7667, 7674, 7675, 7677, 7678, 7679, 7679, 7681, 7683, 7686, 7686, 7687, 7693, 7694, 7695, 7696, 7701, 7702, 7706, 7711, 7713, 7714, 7715, 7715, 7717, 7721, 7722, 7722, 7724, 7724, 7725, 7731, 7733, 7733, 7734, 7736, 7737, 7741, 7746, 7746, 7751, 7753, 7758, 7759, 7766, 7768, 7770, 7771, 7776, 7779, 7781, 7787, 7789, 7790, 7791, 7794, 7795, 7797, 7800, 7801, 7801, 7802, 7803, 7804, 7806, 7808, 7808, 7811, 7812, 7812, 7815, 7816, 7817, 7822, 7822, 7825, 7827, 7828, 7829, 7829, 7830, 7830, 7830, 7831, 7835, 7838, 7839, 7839, 7842, 7847, 7850, 7852, 7853, 7855, 7859, 7860, 7863, 7866, 7867, 7872, 7875, 7882, 7885, 7886, 7887, 7887, 7887, 7888, 7889, 7889, 7895, 7896, 7900, 7901, 7901, 7905, 7909, 7910, 7911, 7913, 7914, 7915, 7916, 7919, 7923, 7926, 7926, 7928, 7928, 7929, 7930, 7931, 7932, 7932, 7934, 7934, 7935, 7937, 7938, 7940, 7940, 7944, 7946, 7947, 7948, 7948, 7952, 7953, 7959, 7960, 7960, 7963, 7964, 7965, 7965, 7966, 7967, 7971, 7972, 7972, 7979, 7982, 7984, 7984, 7986, 7989, 7993, 7997, 7997, 7998, 7999, 8000, 8001, 8002, 8007, 8012, 8015, 8021, 8024, 8027, 8034, 8034, 8040, 8041, 8045, 8045, 8046, 8047, 8048, 8049, 8053, 8057, 8057, 8058, 8061, 8061, 8063, 8066, 8069, 8073, 8074, 8074, 8076, 8079, 8081, 8083, 8083, 8084, 8084, 8088, 8089, 8089, 8090, 8093, 8096, 8097, 8106, 8107, 8108, 8110, 8110, 8113, 8113, 8114, 8115, 8117, 8119, 8119, 8121, 8121, 8122, 8125, 8127, 8128, 8129, 8129, 8131, 8134, 8135, 8136, 8136, 8138, 8139, 8139, 8139, 8140, 8140, 8140, 8141, 8141, 8143, 8144, 8146, 8146, 8148, 8148, 8149, 8149, 8149, 8150, 8150, 8150, 8151, 8157, 8157, 8161, 8162, 8163, 8163, 8166, 8168, 8168, 8168, 8169, 8169, 8170, 8175, 8176, 8179, 8180, 8180, 8182, 8183, 8184, 8187, 8189, 8194, 8196, 8197, 8200, 8201, 8204, 8207, 8211, 8211, 8213, 8213, 8219, 8220, 8220, 8220, 8221, 8223, 8225, 8225, 8228, 8229, 8229, 8231, 8231, 8234, 8235, 8236, 8238, 8246, 8248, 8249, 8250, 8252, 8255, 8258, 8268, 8275, 8276, 8276, 8277, 8280, 8281, 8286, 8286, 8287, 8287, 8287, 8290, 8293, 8295, 8296, 8301, 8301, 8304, 8305, 8306, 8306, 8307, 8314, 8314, 8318, 8318, 8318, 8318, 8319, 8319, 8324, 8324, 8325, 8325, 8326, 8327, 8329, 8332, 8335, 8336, 8341, 8342, 8345, 8346, 8348, 8349, 8353, 8354, 8355, 8356, 8356, 8357, 8362, 8365, 8366, 8367, 8367, 8370, 8370, 8370, 8372, 8372, 8374, 8374, 8380, 8381, 8383, 8384, 8390, 8392, 8396, 8396, 8397, 8397, 8401, 8405, 8411, 8412, 8413, 8415, 8416, 8421, 8422, 8426, 8427, 8432, 8433, 8433, 8435, 8438, 8440, 8440, 8440, 8441, 8442, 8444, 8449, 8451, 8452, 8452, 8454, 8455, 8460, 8464, 8465, 8467, 8469, 8469, 8469, 8470, 8471, 8474, 8474, 8476, 8478, 8479, 8482, 8483, 8487, 8488, 8489, 8490, 8491, 8493, 8496, 8499, 8501, 8507, 8507, 8509, 8513, 8514, 8514, 8514, 8515, 8516, 8518, 8518, 8524, 8524, 8525, 8530, 8530, 8542, 8542, 8545, 8545, 8546, 8547, 8550, 8556, 8556, 8559, 8571, 8574, 8576, 8576, 8578, 8583, 8590, 8591, 8592, 8595, 8595, 8596, 8596, 8596, 8598, 8600, 8600, 8605, 8607, 8610, 8615, 8618, 8621, 8623, 8624, 8625, 8628, 8628, 8628, 8629, 8630, 8631, 8636, 8639, 8640, 8641, 8644, 8645, 8646, 8647, 8648, 8649, 8649, 8650, 8650, 8651, 8653, 8654, 8655, 8655, 8658, 8660, 8661, 8670, 8672, 8674, 8675, 8675, 8675, 8677, 8678, 8683, 8691, 8693, 8693, 8693, 8698, 8698, 8700, 8701, 8703, 8707, 8715, 8716, 8717, 8723, 8723, 8727, 8728, 8737, 8739, 8739, 8741, 8746, 8747, 8750, 8752, 8753, 8754, 8756, 8757, 8761, 8762, 8762, 8767, 8769, 8769, 8770, 8771, 8774, 8779, 8780, 8782, 8788, 8789, 8789, 8791, 8792, 8794, 8795, 8795, 8796, 8797, 8798, 8801, 8801, 8803, 8805, 8806, 8806, 8807, 8809, 8811, 8816, 8818, 8820, 8821, 8822, 8822, 8822, 8823, 8825, 8826, 8830, 8834, 8835, 8837, 8839, 8840, 8840, 8841, 8842, 8846, 8847, 8847, 8850, 8852, 8855, 8855, 8858, 8859, 8860, 8861, 8863, 8863, 8867, 8867, 8867, 8871, 8872, 8872, 8873, 8873, 8876, 8880, 8892, 8894, 8897, 8900, 8902, 8904, 8907, 8907, 8912, 8913, 8914, 8915, 8919, 8922, 8923, 8927, 8928, 8931, 8934, 8935, 8939, 8940, 8940, 8943, 8944, 8944, 8951, 8951, 8955, 8956, 8959, 8960, 8960, 8961, 8962, 8966, 8967, 8968, 8969, 8969, 8969, 8973, 8973, 8974, 8974, 8977, 8977, 8981, 8982, 8985, 8992, 8993, 8994, 8996, 8998, 9000, 9003, 9004, 9009, 9011, 9013, 9013, 9013, 9015, 9016, 9017, 9017, 9018, 9018, 9028, 9029, 9030, 9031, 9031, 9032, 9035, 9036, 9038, 9039, 9042, 9046, 9046, 9047, 9048, 9053, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9064, 9065, 9066, 9067, 9070, 9070, 9073, 9074, 9075, 9088, 9093, 9095, 9097, 9097, 9098, 9100, 9104, 9107, 9109, 9112, 9116, 9116, 9117, 9118, 9119, 9120, 9128, 9128, 9128, 9129, 9131, 9132, 9133, 9136, 9137, 9137, 9138, 9139, 9142, 9142, 9145, 9146, 9149, 9149, 9149, 9156, 9157, 9160, 9163, 9164, 9166, 9166, 9167, 9167, 9168, 9171, 9177, 9178, 9180, 9180, 9181, 9185, 9189, 9193, 9193, 9194, 9200, 9201, 9202, 9202, 9204, 9205, 9208, 9215, 9222, 9230, 9239, 9241, 9244, 9247, 9250, 9251, 9252, 9261, 9264, 9265, 9268, 9269, 9269, 9272, 9273, 9273, 9276, 9277, 9282, 9289, 9294, 9294, 9299, 9300, 9301, 9305, 9306, 9306, 9307, 9316, 9318, 9320, 9321, 9324, 9327, 9332, 9333, 9335, 9337, 9337, 9338, 9338, 9339, 9339, 9340, 9341, 9342, 9345, 9347, 9352, 9354, 9354, 9355, 9355, 9355, 9356, 9356, 9360, 9360, 9362, 9366, 9367, 9367, 9368, 9371, 9371, 9371, 9375, 9377, 9379, 9380, 9385, 9388, 9390, 9390, 9394, 9394, 9396, 9396, 9398, 9403, 9404, 9404, 9406, 9406, 9407, 9408, 9409, 9411, 9412, 9413, 9415, 9416, 9416, 9427, 9430, 9433, 9435, 9436, 9440, 9440, 9442, 9448, 9449, 9452, 9455, 9460, 9460, 9461, 9462, 9463, 9464, 9465, 9467, 9471, 9472, 9474, 9478, 9478, 9485, 9486, 9496, 9497, 9503, 9506, 9506, 9507, 9508, 9514, 9516, 9516, 9518, 9519, 9520, 9522, 9527, 9528, 9529, 9531, 9533, 9535, 9536, 9538, 9539, 9540, 9542, 9542, 9543, 9544, 9544, 9551, 9554, 9557, 9557, 9558, 9560, 9561, 9562, 9564, 9565, 9567, 9570, 9572, 9573, 9573, 9575, 9575, 9577, 9577, 9577, 9578, 9580, 9584, 9585, 9585, 9589, 9590, 9590, 9591, 9592, 9592, 9596, 9597, 9600, 9601, 9602, 9603, 9607, 9614, 9616, 9617, 9617, 9621, 9621, 9622, 9628, 9633, 9635, 9636, 9639, 9641, 9641, 9643, 9643, 9651, 9661, 9662, 9662, 9662, 9663, 9663, 9664, 9664, 9665, 9670, 9674, 9676, 9678, 9682, 9682, 9683, 9685, 9689, 9691, 9691, 9695, 9696, 9697, 9699, 9706, 9707, 9708, 9709, 9710, 9711, 9716, 9716, 9719, 9720, 9721, 9738, 9740, 9740, 9745, 9745, 9746, 9750, 9750, 9750, 9753, 9756, 9756, 9757, 9760, 9764, 9767, 9777, 9780, 9781, 9782, 9782, 9782, 9783, 9784, 9784, 9785, 9788, 9792, 9792, 9794, 9795, 9797, 9800, 9803, 9806, 9809, 9810, 9810, 9812, 9813, 9814, 9814, 9815, 9816, 9818, 9822, 9827, 9827, 9827, 9830, 9832, 9836, 9837, 9837, 9838, 9838, 9840, 9840, 9841, 9841, 9842, 9844, 9844, 9847, 9847, 9849, 9850, 9850, 9850, 9850, 9851, 9854, 9855, 9857, 9859, 9860, 9861, 9865, 9869, 9872, 9878, 9885, 9885, 9886, 9887, 9889, 9890, 9892, 9895, 9899, 9900, 9901, 9903, 9903, 9907, 9915, 9916, 9916, 9917, 9919, 9920, 9925, 9931, 9932, 9933, 9938, 9939, 9939, 9942, 9943, 9943, 9947, 9949, 9951, 9956, 9958, 9959, 9960, 9962, 9965, 9967, 9968, 9969, 9970, 9971, 9972, 9972, 9973, 9973, 9974, 9975, 9978, 9978, 9980, 9981, 9982, 9983, 9984, 9986, 9987, 9991] Bubble: [0, 0, 1, 3, 8, 10, 11, 12, 14, 16, 16, 20, 21, 22, 22, 27, 28, 30, 32, 34, 35, 36, 38, 39, 39, 40, 41, 43, 44, 45, 45, 46, 50, 52, 52, 56, 57, 63, 64, 64, 69, 71, 74, 74, 78, 79, 79, 80, 81, 82, 85, 85, 90, 90, 94, 98, 99, 99, 100, 105, 114, 118, 118, 125, 125, 126, 126, 128, 128, 129, 129, 132, 136, 138, 139, 141, 147, 151, 154, 157, 161, 161, 161, 162, 168, 171, 177, 185, 190, 192, 195, 196, 198, 201, 203, 207, 208, 208, 213, 214, 218, 219, 221, 227, 228, 229, 233, 233, 237, 238, 238, 257, 258, 261, 264, 266, 274, 274, 278, 278, 279, 279, 284, 287, 288, 291, 292, 294, 295, 298, 306, 308, 308, 310, 312, 313, 315, 320, 320, 323, 323, 324, 328, 330, 338, 338, 338, 339, 340, 340, 342, 343, 347, 348, 349, 349, 351, 352, 355, 359, 362, 362, 362, 366, 367, 368, 370, 371, 373, 378, 379, 382, 385, 398, 400, 401, 401, 402, 403, 404, 404, 405, 406, 406, 408, 408, 409, 412, 412, 413, 414, 415, 416, 421, 425, 428, 428, 430, 431, 432, 433, 436, 438, 439, 440, 444, 447, 448, 449, 451, 452, 452, 453, 454, 455, 456, 458, 461, 462, 463, 465, 466, 466, 468, 469, 470, 471, 472, 473, 473, 474, 477, 481, 482, 482, 483, 484, 485, 487, 493, 498, 498, 499, 500, 500, 501, 502, 503, 503, 504, 504, 506, 509, 509, 510, 510, 514, 515, 518, 522, 524, 527, 528, 534, 534, 539, 539, 541, 544, 548, 552, 553, 554, 557, 559, 559, 562, 564, 569, 570, 571, 572, 575, 577, 581, 587, 587, 588, 590, 600, 602, 604, 609, 612, 612, 613, 614, 618, 619, 619, 623, 630, 630, 632, 634, 634, 635, 640, 640, 641, 641, 642, 642, 648, 650, 652, 655, 662, 663, 666, 666, 670, 674, 675, 678, 683, 685, 685, 687, 688, 689, 691, 693, 694, 697, 697, 700, 701, 701, 703, 703, 704, 705, 706, 708, 709, 712, 713, 715, 717, 719, 719, 722, 722, 723, 725, 727, 727, 730, 732, 733, 735, 736, 738, 740, 741, 741, 741, 742, 747, 747, 749, 754, 755, 758, 760, 763, 763, 763, 765, 770, 778, 780, 781, 781, 781, 782, 782, 787, 791, 795, 796, 797, 799, 803, 807, 808, 809, 810, 810, 811, 816, 818, 819, 819, 821, 821, 823, 824, 825, 826, 828, 829, 833, 835, 837, 844, 845, 849, 851, 858, 859, 864, 864, 866, 872, 877, 879, 881, 885, 886, 891, 891, 891, 899, 900, 904, 905, 908, 912, 912, 916, 920, 923, 927, 932, 933, 933, 935, 937, 937, 941, 942, 946, 946, 948, 951, 951, 953, 955, 956, 959, 959, 960, 961, 968, 975, 975, 977, 978, 979, 983, 983, 984, 1000, 1002, 1002, 1004, 1005, 1008, 1009, 1013, 1016, 1018, 1019, 1020, 1022, 1026, 1028, 1030, 1033, 1034, 1036, 1037, 1042, 1042, 1042, 1044, 1046, 1047, 1051, 1054, 1056, 1065, 1066, 1067, 1067, 1067, 1067, 1069, 1070, 1075, 1080, 1084, 1085, 1085, 1086, 1088, 1089, 1095, 1097, 1102, 1103, 1103, 1104, 1107, 1107, 1108, 1109, 1116, 1116, 1125, 1128, 1128, 1129, 1129, 1129, 1131, 1140, 1140, 1143, 1144, 1144, 1145, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1166, 1168, 1172, 1176, 1179, 1179, 1180, 1182, 1184, 1186, 1188, 1191, 1194, 1194, 1194, 1195, 1198, 1204, 1205, 1207, 1207, 1208, 1208, 1209, 1212, 1219, 1225, 1231, 1232, 1233, 1233, 1236, 1239, 1241, 1247, 1248, 1249, 1250, 1251, 1252, 1255, 1257, 1257, 1258, 1261, 1263, 1263, 1264, 1267, 1275, 1279, 1281, 1282, 1283, 1285, 1287, 1289, 1290, 1294, 1301, 1301, 1301, 1304, 1306, 1306, 1306, 1306, 1313, 1319, 1322, 1322, 1323, 1325, 1328, 1331, 1331, 1331, 1332, 1335, 1336, 1337, 1339, 1342, 1344, 1347, 1360, 1361, 1361, 1363, 1366, 1367, 1370, 1372, 1375, 1376, 1377, 1377, 1380, 1382, 1383, 1383, 1389, 1389, 1392, 1395, 1397, 1397, 1398, 1401, 1402, 1402, 1403, 1404, 1410, 1412, 1415, 1416, 1422, 1422, 1423, 1424, 1425, 1426, 1427, 1429, 1433, 1433, 1434, 1437, 1438, 1441, 1442, 1444, 1446, 1450, 1453, 1453, 1454, 1455, 1456, 1456, 1459, 1462, 1462, 1469, 1470, 1470, 1470, 1473, 1475, 1476, 1478, 1478, 1480, 1486, 1488, 1493, 1493, 1494, 1495, 1497, 1498, 1498, 1500, 1504, 1504, 1506, 1507, 1508, 1511, 1511, 1513, 1515, 1523, 1524, 1524, 1526, 1530, 1532, 1535, 1537, 1540, 1541, 1542, 1542, 1543, 1544, 1546, 1552, 1554, 1555, 1559, 1560, 1560, 1564, 1571, 1578, 1581, 1582, 1583, 1586, 1589, 1596, 1596, 1597, 1603, 1606, 1607, 1608, 1609, 1611, 1612, 1615, 1616, 1618, 1621, 1621, 1623, 1625, 1632, 1633, 1634, 1635, 1640, 1642, 1648, 1648, 1649, 1658, 1659, 1660, 1664, 1665, 1669, 1681, 1685, 1688, 1689, 1689, 1695, 1695, 1699, 1700, 1710, 1712, 1713, 1713, 1714, 1718, 1720, 1721, 1728, 1728, 1730, 1732, 1735, 1736, 1739, 1741, 1744, 1750, 1751, 1751, 1755, 1758, 1763, 1763, 1764, 1768, 1774, 1774, 1778, 1779, 1779, 1784, 1789, 1789, 1792, 1792, 1792, 1795, 1797, 1801, 1803, 1807, 1809, 1814, 1816, 1816, 1818, 1821, 1824, 1825, 1829, 1833, 1836, 1836, 1836, 1838, 1838, 1843, 1847, 1850, 1850, 1853, 1855, 1855, 1855, 1855, 1857, 1859, 1861, 1862, 1863, 1863, 1863, 1863, 1864, 1865, 1866, 1868, 1870, 1874, 1878, 1879, 1880, 1882, 1884, 1891, 1895, 1895, 1896, 1898, 1901, 1902, 1904, 1905, 1907, 1908, 1909, 1910, 1917, 1919, 1921, 1921, 1925, 1932, 1933, 1936, 1938, 1944, 1946, 1952, 1953, 1954, 1955, 1956, 1956, 1958, 1961, 1963, 1968, 1970, 1973, 1976, 1977, 1977, 1981, 1983, 1984, 1988, 1994, 1994, 2001, 2002, 2011, 2011, 2014, 2014, 2014, 2014, 2016, 2018, 2020, 2024, 2027, 2029, 2029, 2034, 2035, 2035, 2037, 2039, 2041, 2045, 2045, 2046, 2047, 2049, 2051, 2062, 2063, 2063, 2063, 2066, 2072, 2074, 2078, 2079, 2082, 2087, 2088, 2089, 2091, 2094, 2096, 2097, 2103, 2103, 2104, 2104, 2105, 2108, 2116, 2117, 2120, 2125, 2128, 2129, 2131, 2135, 2138, 2144, 2150, 2150, 2151, 2152, 2153, 2153, 2158, 2160, 2161, 2163, 2164, 2165, 2170, 2172, 2173, 2176, 2179, 2187, 2187, 2189, 2190, 2190, 2190, 2191, 2193, 2198, 2198, 2198, 2202, 2205, 2206, 2208, 2209, 2211, 2213, 2215, 2215, 2220, 2220, 2222, 2227, 2228, 2229, 2230, 2233, 2236, 2236, 2242, 2242, 2248, 2250, 2256, 2256, 2257, 2259, 2261, 2263, 2266, 2267, 2268, 2270, 2270, 2271, 2273, 2275, 2275, 2276, 2277, 2277, 2277, 2277, 2278, 2279, 2285, 2286, 2288, 2290, 2291, 2306, 2310, 2311, 2313, 2314, 2315, 2318, 2319, 2325, 2325, 2326, 2328, 2331, 2334, 2335, 2336, 2342, 2343, 2345, 2347, 2353, 2354, 2355, 2358, 2359, 2359, 2362, 2362, 2368, 2370, 2371, 2376, 2379, 2381, 2381, 2388, 2388, 2390, 2392, 2394, 2395, 2396, 2396, 2401, 2401, 2403, 2403, 2407, 2414, 2420, 2423, 2423, 2423, 2424, 2426, 2427, 2432, 2432, 2433, 2433, 2435, 2435, 2439, 2440, 2447, 2448, 2454, 2454, 2458, 2461, 2467, 2468, 2469, 2470, 2470, 2471, 2472, 2475, 2475, 2478, 2479, 2484, 2486, 2489, 2490, 2492, 2494, 2498, 2498, 2507, 2508, 2508, 2509, 2510, 2510, 2512, 2514, 2514, 2514, 2515, 2518, 2518, 2520, 2523, 2523, 2525, 2526, 2527, 2527, 2529, 2533, 2533, 2538, 2539, 2543, 2550, 2552, 2552, 2557, 2559, 2567, 2571, 2573, 2574, 2577, 2583, 2586, 2587, 2588, 2590, 2592, 2598, 2604, 2607, 2608, 2608, 2608, 2608, 2612, 2613, 2614, 2616, 2618, 2620, 2625, 2626, 2627, 2627, 2629, 2636, 2636, 2638, 2639, 2640, 2641, 2650, 2650, 2651, 2657, 2657, 2658, 2658, 2660, 2660, 2661, 2662, 2667, 2673, 2673, 2674, 2675, 2676, 2676, 2678, 2685, 2686, 2687, 2688, 2689, 2689, 2691, 2691, 2693, 2697, 2697, 2702, 2705, 2706, 2706, 2707, 2707, 2713, 2714, 2719, 2722, 2734, 2734, 2737, 2738, 2739, 2744, 2747, 2748, 2751, 2755, 2757, 2759, 2761, 2764, 2767, 2768, 2784, 2784, 2784, 2787, 2788, 2789, 2790, 2794, 2801, 2801, 2805, 2805, 2810, 2811, 2814, 2817, 2817, 2820, 2821, 2826, 2827, 2828, 2829, 2829, 2830, 2831, 2832, 2832, 2832, 2833, 2834, 2835, 2835, 2836, 2837, 2838, 2842, 2845, 2847, 2849, 2849, 2851, 2851, 2855, 2859, 2859, 2863, 2864, 2866, 2867, 2870, 2870, 2872, 2873, 2875, 2876, 2877, 2878, 2878, 2878, 2881, 2885, 2889, 2890, 2892, 2894, 2895, 2897, 2898, 2898, 2899, 2900, 2900, 2902, 2903, 2906, 2908, 2908, 2911, 2913, 2917, 2920, 2923, 2928, 2928, 2928, 2929, 2929, 2936, 2936, 2937, 2940, 2940, 2941, 2946, 2946, 2948, 2952, 2956, 2958, 2961, 2966, 2969, 2969, 2970, 2971, 2973, 2973, 2976, 2977, 2978, 2980, 2985, 2985, 2985, 2987, 2989, 2989, 2994, 2995, 3000, 3000, 3002, 3003, 3004, 3005, 3009, 3012, 3015, 3016, 3018, 3018, 3019, 3020, 3021, 3024, 3027, 3027, 3028, 3028, 3035, 3038, 3041, 3041, 3043, 3044, 3045, 3046, 3047, 3049, 3049, 3050, 3050, 3051, 3054, 3055, 3056, 3059, 3061, 3063, 3064, 3067, 3069, 3069, 3070, 3072, 3075, 3075, 3076, 3078, 3084, 3087, 3087, 3088, 3089, 3093, 3093, 3099, 3102, 3111, 3111, 3113, 3113, 3114, 3115, 3115, 3116, 3122, 3125, 3127, 3129, 3130, 3130, 3134, 3137, 3139, 3141, 3141, 3142, 3142, 3146, 3147, 3148, 3149, 3150, 3151, 3156, 3156, 3162, 3163, 3165, 3166, 3168, 3169, 3171, 3171, 3171, 3171, 3172, 3173, 3176, 3176, 3177, 3178, 3184, 3184, 3184, 3184, 3186, 3188, 3188, 3190, 3190, 3190, 3190, 3191, 3192, 3197, 3197, 3198, 3198, 3199, 3202, 3206, 3206, 3211, 3213, 3213, 3213, 3214, 3216, 3217, 3218, 3218, 3226, 3226, 3227, 3227, 3229, 3233, 3237, 3239, 3245, 3248, 3251, 3252, 3253, 3255, 3256, 3258, 3261, 3263, 3264, 3266, 3269, 3269, 3270, 3271, 3280, 3281, 3281, 3282, 3285, 3285, 3287, 3287, 3288, 3288, 3294, 3295, 3300, 3306, 3307, 3311, 3312, 3315, 3318, 3319, 3320, 3320, 3325, 3327, 3328, 3329, 3332, 3337, 3338, 3338, 3342, 3343, 3344, 3346, 3350, 3351, 3352, 3352, 3355, 3362, 3365, 3365, 3366, 3368, 3368, 3369, 3373, 3376, 3381, 3382, 3385, 3392, 3394, 3403, 3404, 3404, 3405, 3410, 3410, 3416, 3416, 3419, 3423, 3427, 3428, 3430, 3434, 3434, 3434, 3435, 3437, 3440, 3446, 3447, 3455, 3456, 3466, 3471, 3472, 3476, 3478, 3490, 3491, 3495, 3498, 3500, 3501, 3503, 3504, 3504, 3505, 3506, 3507, 3507, 3508, 3508, 3508, 3508, 3512, 3513, 3514, 3514, 3514, 3520, 3521, 3521, 3523, 3524, 3524, 3528, 3528, 3528, 3529, 3529, 3530, 3530, 3532, 3532, 3533, 3535, 3535, 3538, 3539, 3539, 3539, 3540, 3541, 3542, 3544, 3544, 3544, 3544, 3546, 3547, 3548, 3548, 3551, 3552, 3553, 3555, 3555, 3560, 3561, 3564, 3565, 3570, 3574, 3574, 3578, 3585, 3585, 3587, 3587, 3588, 3588, 3593, 3595, 3598, 3599, 3600, 3601, 3603, 3610, 3610, 3611, 3612, 3612, 3613, 3613, 3614, 3614, 3615, 3615, 3616, 3617, 3618, 3624, 3628, 3628, 3628, 3630, 3632, 3633, 3634, 3634, 3635, 3637, 3638, 3642, 3645, 3646, 3647, 3648, 3649, 3650, 3654, 3655, 3660, 3663, 3669, 3673, 3673, 3679, 3689, 3689, 3690, 3690, 3691, 3697, 3703, 3703, 3707, 3709, 3710, 3712, 3712, 3714, 3715, 3716, 3717, 3718, 3724, 3726, 3726, 3727, 3734, 3734, 3738, 3738, 3739, 3739, 3743, 3743, 3746, 3747, 3747, 3749, 3750, 3753, 3754, 3759, 3760, 3760, 3761, 3761, 3763, 3764, 3764, 3765, 3767, 3767, 3771, 3771, 3771, 3771, 3772, 3773, 3775, 3776, 3780, 3781, 3787, 3790, 3791, 3792, 3792, 3792, 3793, 3794, 3794, 3796, 3796, 3799, 3801, 3804, 3806, 3810, 3810, 3810, 3811, 3816, 3819, 3820, 3824, 3824, 3825, 3831, 3833, 3834, 3835, 3839, 3845, 3845, 3846, 3846, 3847, 3851, 3852, 3852, 3852, 3854, 3857, 3860, 3862, 3862, 3862, 3862, 3866, 3866, 3867, 3871, 3877, 3877, 3878, 3879, 3884, 3885, 3885, 3887, 3889, 3889, 3891, 3894, 3894, 3899, 3904, 3907, 3910, 3912, 3913, 3914, 3917, 3918, 3920, 3922, 3926, 3929, 3930, 3932, 3933, 3933, 3937, 3939, 3939, 3940, 3942, 3951, 3952, 3957, 3958, 3958, 3963, 3963, 3968, 3970, 3970, 3972, 3974, 3975, 3976, 3977, 3980, 3981, 3981, 3985, 3987, 3988, 3989, 3991, 3992, 3993, 3994, 3996, 4003, 4003, 4005, 4006, 4007, 4011, 4011, 4011, 4012, 4012, 4012, 4015, 4015, 4015, 4018, 4021, 4025, 4027, 4029, 4032, 4032, 4033, 4034, 4037, 4040, 4042, 4045, 4047, 4048, 4049, 4049, 4049, 4050, 4050, 4055, 4058, 4059, 4060, 4062, 4064, 4064, 4069, 4071, 4072, 4072, 4072, 4085, 4086, 4086, 4088, 4092, 4096, 4097, 4099, 4099, 4100, 4112, 4115, 4116, 4118, 4119, 4120, 4124, 4124, 4125, 4125, 4129, 4133, 4136, 4137, 4139, 4140, 4140, 4143, 4150, 4155, 4156, 4158, 4161, 4162, 4163, 4164, 4166, 4167, 4168, 4171, 4174, 4178, 4186, 4187, 4187, 4188, 4189, 4192, 4194, 4198, 4202, 4206, 4208, 4211, 4213, 4214, 4219, 4222, 4222, 4223, 4224, 4226, 4228, 4229, 4230, 4234, 4234, 4243, 4244, 4249, 4251, 4252, 4255, 4260, 4261, 4262, 4262, 4262, 4263, 4265, 4267, 4268, 4269, 4273, 4274, 4275, 4275, 4276, 4276, 4280, 4280, 4280, 4282, 4284, 4288, 4289, 4290, 4295, 4295, 4296, 4299, 4302, 4303, 4305, 4306, 4307, 4311, 4316, 4317, 4317, 4324, 4326, 4331, 4334, 4334, 4341, 4344, 4347, 4350, 4350, 4359, 4360, 4360, 4361, 4363, 4365, 4365, 4367, 4367, 4368, 4369, 4371, 4372, 4372, 4374, 4380, 4381, 4383, 4385, 4386, 4388, 4389, 4390, 4391, 4394, 4395, 4399, 4401, 4402, 4405, 4406, 4409, 4415, 4415, 4417, 4423, 4424, 4428, 4428, 4428, 4432, 4434, 4434, 4436, 4439, 4440, 4442, 4442, 4444, 4448, 4449, 4451, 4452, 4452, 4455, 4457, 4458, 4463, 4464, 4465, 4466, 4468, 4469, 4470, 4471, 4471, 4471, 4473, 4475, 4476, 4479, 4479, 4482, 4489, 4492, 4493, 4493, 4495, 4496, 4496, 4498, 4499, 4499, 4501, 4504, 4505, 4506, 4508, 4508, 4515, 4520, 4520, 4521, 4521, 4522, 4524, 4524, 4532, 4532, 4536, 4537, 4540, 4541, 4542, 4543, 4545, 4545, 4545, 4549, 4549, 4550, 4552, 4553, 4554, 4554, 4560, 4562, 4563, 4564, 4566, 4567, 4568, 4569, 4575, 4575, 4578, 4578, 4580, 4581, 4583, 4589, 4589, 4592, 4595, 4596, 4597, 4597, 4601, 4602, 4603, 4605, 4605, 4606, 4608, 4610, 4619, 4622, 4623, 4623, 4626, 4628, 4629, 4630, 4631, 4634, 4635, 4635, 4637, 4638, 4639, 4645, 4646, 4646, 4648, 4651, 4652, 4653, 4655, 4656, 4657, 4658, 4662, 4663, 4667, 4669, 4669, 4670, 4673, 4675, 4676, 4677, 4677, 4680, 4687, 4687, 4688, 4693, 4694, 4695, 4695, 4696, 4696, 4697, 4700, 4701, 4702, 4705, 4706, 4708, 4714, 4717, 4719, 4719, 4723, 4724, 4726, 4732, 4733, 4738, 4738, 4741, 4742, 4754, 4754, 4757, 4758, 4758, 4759, 4760, 4763, 4763, 4763, 4766, 4766, 4768, 4769, 4769, 4769, 4771, 4771, 4774, 4774, 4779, 4782, 4782, 4783, 4784, 4788, 4788, 4789, 4790, 4792, 4795, 4795, 4796, 4797, 4799, 4806, 4807, 4810, 4810, 4812, 4814, 4815, 4818, 4818, 4819, 4827, 4828, 4832, 4836, 4839, 4840, 4840, 4842, 4848, 4851, 4852, 4856, 4860, 4860, 4863, 4863, 4864, 4865, 4870, 4871, 4871, 4871, 4874, 4877, 4877, 4880, 4881, 4882, 4884, 4884, 4884, 4885, 4889, 4890, 4891, 4891, 4892, 4893, 4893, 4895, 4902, 4903, 4903, 4907, 4912, 4913, 4914, 4916, 4920, 4921, 4921, 4922, 4927, 4932, 4935, 4936, 4937, 4939, 4943, 4945, 4946, 4947, 4952, 4961, 4965, 4965, 4966, 4967, 4971, 4973, 4974, 4979, 4982, 4983, 4983, 4985, 4986, 4988, 4989, 4990, 4998, 5000, 5000, 5001, 5002, 5003, 5004, 5004, 5009, 5015, 5019, 5020, 5021, 5021, 5021, 5022, 5023, 5024, 5025, 5027, 5032, 5036, 5037, 5039, 5039, 5047, 5048, 5048, 5049, 5055, 5057, 5058, 5059, 5060, 5066, 5066, 5067, 5074, 5075, 5076, 5077, 5079, 5081, 5081, 5083, 5083, 5086, 5086, 5086, 5086, 5089, 5092, 5093, 5094, 5097, 5098, 5101, 5102, 5103, 5103, 5103, 5110, 5111, 5112, 5113, 5114, 5119, 5125, 5126, 5132, 5137, 5139, 5139, 5143, 5144, 5145, 5145, 5146, 5146, 5149, 5152, 5153, 5153, 5153, 5153, 5154, 5155, 5158, 5158, 5163, 5164, 5165, 5165, 5167, 5168, 5170, 5171, 5175, 5181, 5186, 5189, 5191, 5192, 5194, 5195, 5197, 5197, 5197, 5199, 5201, 5205, 5210, 5213, 5215, 5215, 5222, 5222, 5222, 5223, 5223, 5225, 5226, 5227, 5228, 5229, 5229, 5230, 5236, 5237, 5237, 5240, 5246, 5247, 5248, 5248, 5249, 5250, 5254, 5255, 5256, 5257, 5258, 5262, 5267, 5269, 5272, 5274, 5277, 5280, 5282, 5282, 5282, 5282, 5283, 5286, 5290, 5291, 5294, 5295, 5296, 5297, 5298, 5299, 5299, 5300, 5301, 5301, 5303, 5305, 5308, 5310, 5310, 5313, 5314, 5314, 5315, 5323, 5327, 5334, 5334, 5335, 5340, 5347, 5347, 5348, 5351, 5353, 5359, 5372, 5379, 5382, 5382, 5384, 5384, 5388, 5389, 5391, 5394, 5396, 5406, 5406, 5406, 5407, 5409, 5410, 5413, 5413, 5414, 5416, 5416, 5418, 5420, 5424, 5425, 5425, 5426, 5429, 5430, 5430, 5434, 5435, 5438, 5441, 5441, 5444, 5444, 5444, 5446, 5447, 5447, 5448, 5449, 5450, 5452, 5453, 5453, 5453, 5454, 5457, 5457, 5458, 5463, 5463, 5464, 5464, 5465, 5467, 5468, 5468, 5470, 5471, 5471, 5477, 5478, 5480, 5484, 5484, 5486, 5487, 5491, 5493, 5494, 5496, 5497, 5497, 5499, 5499, 5501, 5503, 5511, 5513, 5516, 5517, 5518, 5519, 5522, 5524, 5528, 5529, 5530, 5533, 5535, 5536, 5538, 5538, 5538, 5542, 5544, 5546, 5546, 5553, 5554, 5555, 5556, 5560, 5562, 5563, 5563, 5563, 5568, 5569, 5576, 5577, 5582, 5583, 5585, 5586, 5587, 5590, 5591, 5595, 5596, 5596, 5598, 5603, 5604, 5607, 5608, 5612, 5614, 5625, 5625, 5627, 5635, 5639, 5640, 5643, 5643, 5648, 5651, 5651, 5652, 5653, 5655, 5655, 5656, 5660, 5661, 5661, 5662, 5665, 5665, 5667, 5667, 5668, 5673, 5676, 5677, 5677, 5677, 5678, 5679, 5680, 5684, 5689, 5696, 5697, 5698, 5701, 5713, 5714, 5714, 5717, 5717, 5720, 5721, 5724, 5728, 5730, 5731, 5732, 5732, 5733, 5738, 5739, 5740, 5740, 5746, 5746, 5749, 5751, 5751, 5752, 5752, 5755, 5756, 5757, 5757, 5759, 5760, 5761, 5767, 5771, 5772, 5773, 5776, 5781, 5782, 5782, 5783, 5787, 5788, 5792, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5810, 5810, 5811, 5812, 5812, 5817, 5817, 5817, 5819, 5820, 5822, 5822, 5824, 5829, 5833, 5833, 5836, 5838, 5841, 5842, 5843, 5844, 5846, 5849, 5856, 5859, 5860, 5861, 5862, 5862, 5863, 5865, 5868, 5869, 5870, 5879, 5879, 5886, 5886, 5886, 5887, 5887, 5889, 5889, 5892, 5893, 5893, 5896, 5897, 5899, 5905, 5910, 5912, 5912, 5913, 5915, 5915, 5916, 5917, 5919, 5920, 5920, 5921, 5925, 5928, 5928, 5934, 5935, 5937, 5937, 5938, 5940, 5941, 5942, 5944, 5946, 5948, 5948, 5950, 5951, 5956, 5961, 5962, 5962, 5962, 5966, 5966, 5970, 5972, 5974, 5975, 5976, 5976, 5981, 5982, 5985, 5985, 5985, 5985, 5987, 5992, 5993, 5994, 5995, 5998, 6001, 6002, 6002, 6002, 6006, 6011, 6013, 6016, 6019, 6023, 6024, 6024, 6025, 6028, 6029, 6030, 6031, 6032, 6035, 6037, 6045, 6045, 6046, 6047, 6049, 6051, 6053, 6054, 6057, 6057, 6059, 6060, 6062, 6062, 6063, 6064, 6066, 6070, 6073, 6074, 6075, 6075, 6078, 6078, 6080, 6081, 6082, 6083, 6085, 6088, 6088, 6089, 6090, 6091, 6091, 6091, 6093, 6095, 6096, 6096, 6097, 6097, 6100, 6100, 6101, 6103, 6105, 6107, 6109, 6110, 6113, 6117, 6117, 6119, 6120, 6121, 6121, 6123, 6125, 6126, 6128, 6129, 6130, 6134, 6134, 6138, 6141, 6142, 6143, 6145, 6147, 6148, 6149, 6151, 6152, 6154, 6163, 6168, 6169, 6169, 6172, 6173, 6175, 6178, 6179, 6181, 6181, 6181, 6184, 6186, 6186, 6187, 6188, 6190, 6196, 6198, 6198, 6202, 6205, 6205, 6207, 6211, 6211, 6211, 6212, 6214, 6217, 6218, 6218, 6219, 6220, 6223, 6224, 6225, 6226, 6226, 6227, 6228, 6231, 6234, 6234, 6236, 6236, 6242, 6244, 6245, 6249, 6250, 6252, 6256, 6257, 6257, 6260, 6261, 6261, 6262, 6264, 6265, 6267, 6267, 6267, 6268, 6270, 6271, 6271, 6272, 6274, 6277, 6277, 6280, 6282, 6283, 6285, 6288, 6290, 6291, 6291, 6292, 6292, 6292, 6305, 6306, 6311, 6312, 6313, 6313, 6313, 6316, 6316, 6317, 6317, 6320, 6320, 6321, 6321, 6322, 6323, 6324, 6324, 6325, 6327, 6328, 6329, 6337, 6338, 6338, 6340, 6343, 6346, 6349, 6352, 6353, 6357, 6357, 6358, 6359, 6359, 6360, 6363, 6365, 6366, 6367, 6367, 6370, 6371, 6374, 6377, 6378, 6381, 6384, 6384, 6385, 6385, 6386, 6387, 6391, 6393, 6394, 6394, 6395, 6398, 6400, 6404, 6407, 6407, 6412, 6415, 6416, 6419, 6423, 6423, 6424, 6427, 6428, 6429, 6432, 6434, 6437, 6443, 6443, 6449, 6449, 6449, 6451, 6453, 6453, 6455, 6456, 6456, 6457, 6460, 6460, 6460, 6465, 6467, 6471, 6472, 6472, 6474, 6479, 6479, 6480, 6480, 6483, 6483, 6484, 6485, 6488, 6488, 6489, 6490, 6495, 6499, 6499, 6507, 6508, 6508, 6513, 6513, 6515, 6517, 6517, 6521, 6522, 6527, 6528, 6529, 6531, 6532, 6535, 6536, 6538, 6540, 6541, 6543, 6546, 6548, 6549, 6551, 6552, 6553, 6555, 6556, 6558, 6572, 6572, 6577, 6578, 6583, 6584, 6586, 6587, 6590, 6591, 6603, 6604, 6604, 6605, 6606, 6607, 6609, 6610, 6610, 6611, 6612, 6612, 6613, 6619, 6622, 6625, 6625, 6626, 6630, 6635, 6635, 6640, 6644, 6646, 6647, 6647, 6649, 6655, 6655, 6656, 6659, 6663, 6667, 6670, 6674, 6676, 6677, 6677, 6677, 6679, 6679, 6682, 6684, 6685, 6686, 6692, 6692, 6695, 6697, 6699, 6701, 6706, 6707, 6708, 6709, 6714, 6723, 6726, 6727, 6728, 6729, 6729, 6732, 6735, 6736, 6737, 6739, 6740, 6740, 6748, 6750, 6752, 6754, 6754, 6758, 6762, 6762, 6764, 6765, 6768, 6771, 6771, 6772, 6775, 6776, 6776, 6778, 6781, 6783, 6784, 6790, 6791, 6792, 6792, 6796, 6799, 6801, 6805, 6808, 6808, 6809, 6809, 6809, 6811, 6814, 6816, 6816, 6817, 6817, 6820, 6823, 6823, 6824, 6825, 6826, 6827, 6831, 6833, 6833, 6839, 6840, 6841, 6841, 6842, 6842, 6843, 6845, 6849, 6852, 6854, 6855, 6856, 6862, 6862, 6866, 6868, 6871, 6873, 6874, 6874, 6876, 6877, 6878, 6881, 6882, 6884, 6884, 6889, 6898, 6899, 6902, 6903, 6903, 6905, 6906, 6906, 6907, 6910, 6913, 6914, 6914, 6915, 6920, 6925, 6929, 6933, 6934, 6936, 6936, 6937, 6945, 6947, 6947, 6947, 6948, 6949, 6950, 6951, 6957, 6957, 6959, 6960, 6961, 6963, 6966, 6967, 6968, 6970, 6973, 6975, 6977, 6981, 6982, 6985, 6986, 6987, 6988, 6989, 6992, 6995, 6996, 6997, 6998, 6998, 6998, 7000, 7000, 7002, 7002, 7005, 7011, 7011, 7012, 7012, 7014, 7016, 7019, 7022, 7022, 7025, 7026, 7026, 7028, 7030, 7030, 7032, 7033, 7034, 7035, 7035, 7037, 7040, 7043, 7047, 7050, 7051, 7052, 7054, 7058, 7058, 7059, 7060, 7060, 7061, 7069, 7072, 7073, 7075, 7079, 7084, 7085, 7088, 7088, 7090, 7091, 7094, 7094, 7097, 7100, 7103, 7104, 7108, 7109, 7114, 7115, 7118, 7119, 7120, 7122, 7128, 7128, 7130, 7135, 7137, 7138, 7142, 7143, 7145, 7147, 7148, 7148, 7152, 7154, 7156, 7159, 7159, 7160, 7161, 7161, 7162, 7165, 7169, 7169, 7172, 7174, 7175, 7177, 7182, 7185, 7185, 7185, 7186, 7187, 7195, 7196, 7198, 7200, 7202, 7203, 7204, 7205, 7210, 7213, 7213, 7214, 7217, 7220, 7221, 7223, 7224, 7226, 7227, 7231, 7233, 7234, 7235, 7238, 7238, 7242, 7246, 7249, 7249, 7250, 7251, 7255, 7259, 7265, 7271, 7271, 7272, 7273, 7276, 7279, 7279, 7280, 7282, 7284, 7285, 7286, 7287, 7289, 7291, 7291, 7292, 7292, 7292, 7294, 7297, 7299, 7299, 7303, 7307, 7307, 7308, 7308, 7309, 7317, 7318, 7323, 7323, 7324, 7325, 7332, 7334, 7336, 7337, 7337, 7337, 7342, 7343, 7347, 7347, 7349, 7355, 7356, 7356, 7356, 7360, 7360, 7364, 7364, 7369, 7373, 7375, 7375, 7377, 7377, 7381, 7381, 7382, 7382, 7383, 7385, 7387, 7387, 7388, 7389, 7389, 7392, 7394, 7394, 7395, 7398, 7398, 7399, 7400, 7400, 7403, 7403, 7404, 7409, 7413, 7414, 7414, 7419, 7426, 7429, 7429, 7430, 7434, 7436, 7437, 7440, 7442, 7443, 7444, 7452, 7454, 7455, 7456, 7456, 7456, 7457, 7460, 7463, 7466, 7466, 7468, 7469, 7470, 7474, 7474, 7476, 7480, 7480, 7485, 7489, 7489, 7496, 7498, 7500, 7501, 7501, 7501, 7509, 7514, 7520, 7520, 7522, 7523, 7523, 7527, 7528, 7530, 7534, 7534, 7536, 7536, 7538, 7543, 7544, 7544, 7548, 7550, 7550, 7553, 7556, 7558, 7559, 7561, 7563, 7563, 7572, 7575, 7576, 7579, 7579, 7587, 7588, 7588, 7591, 7592, 7595, 7596, 7603, 7603, 7606, 7607, 7609, 7609, 7611, 7612, 7613, 7618, 7618, 7628, 7628, 7633, 7640, 7640, 7641, 7643, 7643, 7643, 7652, 7652, 7654, 7659, 7659, 7662, 7662, 7663, 7664, 7665, 7667, 7674, 7675, 7677, 7678, 7679, 7679, 7681, 7683, 7686, 7686, 7687, 7693, 7694, 7695, 7696, 7701, 7702, 7706, 7711, 7713, 7714, 7715, 7715, 7717, 7721, 7722, 7722, 7724, 7724, 7725, 7731, 7733, 7733, 7734, 7736, 7737, 7741, 7746, 7746, 7751, 7753, 7758, 7759, 7766, 7768, 7770, 7771, 7776, 7779, 7781, 7787, 7789, 7790, 7791, 7794, 7795, 7797, 7800, 7801, 7801, 7802, 7803, 7804, 7806, 7808, 7808, 7811, 7812, 7812, 7815, 7816, 7817, 7822, 7822, 7825, 7827, 7828, 7829, 7829, 7830, 7830, 7830, 7831, 7835, 7838, 7839, 7839, 7842, 7847, 7850, 7852, 7853, 7855, 7859, 7860, 7863, 7866, 7867, 7872, 7875, 7882, 7885, 7886, 7887, 7887, 7887, 7888, 7889, 7889, 7895, 7896, 7900, 7901, 7901, 7905, 7909, 7910, 7911, 7913, 7914, 7915, 7916, 7919, 7923, 7926, 7926, 7928, 7928, 7929, 7930, 7931, 7932, 7932, 7934, 7934, 7935, 7937, 7938, 7940, 7940, 7944, 7946, 7947, 7948, 7948, 7952, 7953, 7959, 7960, 7960, 7963, 7964, 7965, 7965, 7966, 7967, 7971, 7972, 7972, 7979, 7982, 7984, 7984, 7986, 7989, 7993, 7997, 7997, 7998, 7999, 8000, 8001, 8002, 8007, 8012, 8015, 8021, 8024, 8027, 8034, 8034, 8040, 8041, 8045, 8045, 8046, 8047, 8048, 8049, 8053, 8057, 8057, 8058, 8061, 8061, 8063, 8066, 8069, 8073, 8074, 8074, 8076, 8079, 8081, 8083, 8083, 8084, 8084, 8088, 8089, 8089, 8090, 8093, 8096, 8097, 8106, 8107, 8108, 8110, 8110, 8113, 8113, 8114, 8115, 8117, 8119, 8119, 8121, 8121, 8122, 8125, 8127, 8128, 8129, 8129, 8131, 8134, 8135, 8136, 8136, 8138, 8139, 8139, 8139, 8140, 8140, 8140, 8141, 8141, 8143, 8144, 8146, 8146, 8148, 8148, 8149, 8149, 8149, 8150, 8150, 8150, 8151, 8157, 8157, 8161, 8162, 8163, 8163, 8166, 8168, 8168, 8168, 8169, 8169, 8170, 8175, 8176, 8179, 8180, 8180, 8182, 8183, 8184, 8187, 8189, 8194, 8196, 8197, 8200, 8201, 8204, 8207, 8211, 8211, 8213, 8213, 8219, 8220, 8220, 8220, 8221, 8223, 8225, 8225, 8228, 8229, 8229, 8231, 8231, 8234, 8235, 8236, 8238, 8246, 8248, 8249, 8250, 8252, 8255, 8258, 8268, 8275, 8276, 8276, 8277, 8280, 8281, 8286, 8286, 8287, 8287, 8287, 8290, 8293, 8295, 8296, 8301, 8301, 8304, 8305, 8306, 8306, 8307, 8314, 8314, 8318, 8318, 8318, 8318, 8319, 8319, 8324, 8324, 8325, 8325, 8326, 8327, 8329, 8332, 8335, 8336, 8341, 8342, 8345, 8346, 8348, 8349, 8353, 8354, 8355, 8356, 8356, 8357, 8362, 8365, 8366, 8367, 8367, 8370, 8370, 8370, 8372, 8372, 8374, 8374, 8380, 8381, 8383, 8384, 8390, 8392, 8396, 8396, 8397, 8397, 8401, 8405, 8411, 8412, 8413, 8415, 8416, 8421, 8422, 8426, 8427, 8432, 8433, 8433, 8435, 8438, 8440, 8440, 8440, 8441, 8442, 8444, 8449, 8451, 8452, 8452, 8454, 8455, 8460, 8464, 8465, 8467, 8469, 8469, 8469, 8470, 8471, 8474, 8474, 8476, 8478, 8479, 8482, 8483, 8487, 8488, 8489, 8490, 8491, 8493, 8496, 8499, 8501, 8507, 8507, 8509, 8513, 8514, 8514, 8514, 8515, 8516, 8518, 8518, 8524, 8524, 8525, 8530, 8530, 8542, 8542, 8545, 8545, 8546, 8547, 8550, 8556, 8556, 8559, 8571, 8574, 8576, 8576, 8578, 8583, 8590, 8591, 8592, 8595, 8595, 8596, 8596, 8596, 8598, 8600, 8600, 8605, 8607, 8610, 8615, 8618, 8621, 8623, 8624, 8625, 8628, 8628, 8628, 8629, 8630, 8631, 8636, 8639, 8640, 8641, 8644, 8645, 8646, 8647, 8648, 8649, 8649, 8650, 8650, 8651, 8653, 8654, 8655, 8655, 8658, 8660, 8661, 8670, 8672, 8674, 8675, 8675, 8675, 8677, 8678, 8683, 8691, 8693, 8693, 8693, 8698, 8698, 8700, 8701, 8703, 8707, 8715, 8716, 8717, 8723, 8723, 8727, 8728, 8737, 8739, 8739, 8741, 8746, 8747, 8750, 8752, 8753, 8754, 8756, 8757, 8761, 8762, 8762, 8767, 8769, 8769, 8770, 8771, 8774, 8779, 8780, 8782, 8788, 8789, 8789, 8791, 8792, 8794, 8795, 8795, 8796, 8797, 8798, 8801, 8801, 8803, 8805, 8806, 8806, 8807, 8809, 8811, 8816, 8818, 8820, 8821, 8822, 8822, 8822, 8823, 8825, 8826, 8830, 8834, 8835, 8837, 8839, 8840, 8840, 8841, 8842, 8846, 8847, 8847, 8850, 8852, 8855, 8855, 8858, 8859, 8860, 8861, 8863, 8863, 8867, 8867, 8867, 8871, 8872, 8872, 8873, 8873, 8876, 8880, 8892, 8894, 8897, 8900, 8902, 8904, 8907, 8907, 8912, 8913, 8914, 8915, 8919, 8922, 8923, 8927, 8928, 8931, 8934, 8935, 8939, 8940, 8940, 8943, 8944, 8944, 8951, 8951, 8955, 8956, 8959, 8960, 8960, 8961, 8962, 8966, 8967, 8968, 8969, 8969, 8969, 8973, 8973, 8974, 8974, 8977, 8977, 8981, 8982, 8985, 8992, 8993, 8994, 8996, 8998, 9000, 9003, 9004, 9009, 9011, 9013, 9013, 9013, 9015, 9016, 9017, 9017, 9018, 9018, 9028, 9029, 9030, 9031, 9031, 9032, 9035, 9036, 9038, 9039, 9042, 9046, 9046, 9047, 9048, 9053, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9064, 9065, 9066, 9067, 9070, 9070, 9073, 9074, 9075, 9088, 9093, 9095, 9097, 9097, 9098, 9100, 9104, 9107, 9109, 9112, 9116, 9116, 9117, 9118, 9119, 9120, 9128, 9128, 9128, 9129, 9131, 9132, 9133, 9136, 9137, 9137, 9138, 9139, 9142, 9142, 9145, 9146, 9149, 9149, 9149, 9156, 9157, 9160, 9163, 9164, 9166, 9166, 9167, 9167, 9168, 9171, 9177, 9178, 9180, 9180, 9181, 9185, 9189, 9193, 9193, 9194, 9200, 9201, 9202, 9202, 9204, 9205, 9208, 9215, 9222, 9230, 9239, 9241, 9244, 9247, 9250, 9251, 9252, 9261, 9264, 9265, 9268, 9269, 9269, 9272, 9273, 9273, 9276, 9277, 9282, 9289, 9294, 9294, 9299, 9300, 9301, 9305, 9306, 9306, 9307, 9316, 9318, 9320, 9321, 9324, 9327, 9332, 9333, 9335, 9337, 9337, 9338, 9338, 9339, 9339, 9340, 9341, 9342, 9345, 9347, 9352, 9354, 9354, 9355, 9355, 9355, 9356, 9356, 9360, 9360, 9362, 9366, 9367, 9367, 9368, 9371, 9371, 9371, 9375, 9377, 9379, 9380, 9385, 9388, 9390, 9390, 9394, 9394, 9396, 9396, 9398, 9403, 9404, 9404, 9406, 9406, 9407, 9408, 9409, 9411, 9412, 9413, 9415, 9416, 9416, 9427, 9430, 9433, 9435, 9436, 9440, 9440, 9442, 9448, 9449, 9452, 9455, 9460, 9460, 9461, 9462, 9463, 9464, 9465, 9467, 9471, 9472, 9474, 9478, 9478, 9485, 9486, 9496, 9497, 9503, 9506, 9506, 9507, 9508, 9514, 9516, 9516, 9518, 9519, 9520, 9522, 9527, 9528, 9529, 9531, 9533, 9535, 9536, 9538, 9539, 9540, 9542, 9542, 9543, 9544, 9544, 9551, 9554, 9557, 9557, 9558, 9560, 9561, 9562, 9564, 9565, 9567, 9570, 9572, 9573, 9573, 9575, 9575, 9577, 9577, 9577, 9578, 9580, 9584, 9585, 9585, 9589, 9590, 9590, 9591, 9592, 9592, 9596, 9597, 9600, 9601, 9602, 9603, 9607, 9614, 9616, 9617, 9617, 9621, 9621, 9622, 9628, 9633, 9635, 9636, 9639, 9641, 9641, 9643, 9643, 9651, 9661, 9662, 9662, 9662, 9663, 9663, 9664, 9664, 9665, 9670, 9674, 9676, 9678, 9682, 9682, 9683, 9685, 9689, 9691, 9691, 9695, 9696, 9697, 9699, 9706, 9707, 9708, 9709, 9710, 9711, 9716, 9716, 9719, 9720, 9721, 9738, 9740, 9740, 9745, 9745, 9746, 9750, 9750, 9750, 9753, 9756, 9756, 9757, 9760, 9764, 9767, 9777, 9780, 9781, 9782, 9782, 9782, 9783, 9784, 9784, 9785, 9788, 9792, 9792, 9794, 9795, 9797, 9800, 9803, 9806, 9809, 9810, 9810, 9812, 9813, 9814, 9814, 9815, 9816, 9818, 9822, 9827, 9827, 9827, 9830, 9832, 9836, 9837, 9837, 9838, 9838, 9840, 9840, 9841, 9841, 9842, 9844, 9844, 9847, 9847, 9849, 9850, 9850, 9850, 9850, 9851, 9854, 9855, 9857, 9859, 9860, 9861, 9865, 9869, 9872, 9878, 9885, 9885, 9886, 9887, 9889, 9890, 9892, 9895, 9899, 9900, 9901, 9903, 9903, 9907, 9915, 9916, 9916, 9917, 9919, 9920, 9925, 9931, 9932, 9933, 9938, 9939, 9939, 9942, 9943, 9943, 9947, 9949, 9951, 9956, 9958, 9959, 9960, 9962, 9965, 9967, 9968, 9969, 9970, 9971, 9972, 9972, 9973, 9973, 9974, 9975, 9978, 9978, 9980, 9981, 9982, 9983, 9984, 9986, 9987, 9991] Merge: [0, 0, 1, 3, 8, 10, 11, 12, 14, 16, 16, 20, 21, 22, 22, 27, 28, 30, 32, 34, 35, 36, 38, 39, 39, 40, 41, 43, 44, 45, 45, 46, 50, 52, 52, 56, 57, 63, 64, 64, 69, 71, 74, 74, 78, 79, 79, 80, 81, 82, 85, 85, 90, 90, 94, 98, 99, 99, 100, 105, 114, 118, 118, 125, 125, 126, 126, 128, 128, 129, 129, 132, 136, 138, 139, 141, 147, 151, 154, 157, 161, 161, 161, 162, 168, 171, 177, 185, 190, 192, 195, 196, 198, 201, 203, 207, 208, 208, 213, 214, 218, 219, 221, 227, 228, 229, 233, 233, 237, 238, 238, 257, 258, 261, 264, 266, 274, 274, 278, 278, 279, 279, 284, 287, 288, 291, 292, 294, 295, 298, 306, 308, 308, 310, 312, 313, 315, 320, 320, 323, 323, 324, 328, 330, 338, 338, 338, 339, 340, 340, 342, 343, 347, 348, 349, 349, 351, 352, 355, 359, 362, 362, 362, 366, 367, 368, 370, 371, 373, 378, 379, 382, 385, 398, 400, 401, 401, 402, 403, 404, 404, 405, 406, 406, 408, 408, 409, 412, 412, 413, 414, 415, 416, 421, 425, 428, 428, 430, 431, 432, 433, 436, 438, 439, 440, 444, 447, 448, 449, 451, 452, 452, 453, 454, 455, 456, 458, 461, 462, 463, 465, 466, 466, 468, 469, 470, 471, 472, 473, 473, 474, 477, 481, 482, 482, 483, 484, 485, 487, 493, 498, 498, 499, 500, 500, 501, 502, 503, 503, 504, 504, 506, 509, 509, 510, 510, 514, 515, 518, 522, 524, 527, 528, 534, 534, 539, 539, 541, 544, 548, 552, 553, 554, 557, 559, 559, 562, 564, 569, 570, 571, 572, 575, 577, 581, 587, 587, 588, 590, 600, 602, 604, 609, 612, 612, 613, 614, 618, 619, 619, 623, 630, 630, 632, 634, 634, 635, 640, 640, 641, 641, 642, 642, 648, 650, 652, 655, 662, 663, 666, 666, 670, 674, 675, 678, 683, 685, 685, 687, 688, 689, 691, 693, 694, 697, 697, 700, 701, 701, 703, 703, 704, 705, 706, 708, 709, 712, 713, 715, 717, 719, 719, 722, 722, 723, 725, 727, 727, 730, 732, 733, 735, 736, 738, 740, 741, 741, 741, 742, 747, 747, 749, 754, 755, 758, 760, 763, 763, 763, 765, 770, 778, 780, 781, 781, 781, 782, 782, 787, 791, 795, 796, 797, 799, 803, 807, 808, 809, 810, 810, 811, 816, 818, 819, 819, 821, 821, 823, 824, 825, 826, 828, 829, 833, 835, 837, 844, 845, 849, 851, 858, 859, 864, 864, 866, 872, 877, 879, 881, 885, 886, 891, 891, 891, 899, 900, 904, 905, 908, 912, 912, 916, 920, 923, 927, 932, 933, 933, 935, 937, 937, 941, 942, 946, 946, 948, 951, 951, 953, 955, 956, 959, 959, 960, 961, 968, 975, 975, 977, 978, 979, 983, 983, 984, 1000, 1002, 1002, 1004, 1005, 1008, 1009, 1013, 1016, 1018, 1019, 1020, 1022, 1026, 1028, 1030, 1033, 1034, 1036, 1037, 1042, 1042, 1042, 1044, 1046, 1047, 1051, 1054, 1056, 1065, 1066, 1067, 1067, 1067, 1067, 1069, 1070, 1075, 1080, 1084, 1085, 1085, 1086, 1088, 1089, 1095, 1097, 1102, 1103, 1103, 1104, 1107, 1107, 1108, 1109, 1116, 1116, 1125, 1128, 1128, 1129, 1129, 1129, 1131, 1140, 1140, 1143, 1144, 1144, 1145, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1166, 1168, 1172, 1176, 1179, 1179, 1180, 1182, 1184, 1186, 1188, 1191, 1194, 1194, 1194, 1195, 1198, 1204, 1205, 1207, 1207, 1208, 1208, 1209, 1212, 1219, 1225, 1231, 1232, 1233, 1233, 1236, 1239, 1241, 1247, 1248, 1249, 1250, 1251, 1252, 1255, 1257, 1257, 1258, 1261, 1263, 1263, 1264, 1267, 1275, 1279, 1281, 1282, 1283, 1285, 1287, 1289, 1290, 1294, 1301, 1301, 1301, 1304, 1306, 1306, 1306, 1306, 1313, 1319, 1322, 1322, 1323, 1325, 1328, 1331, 1331, 1331, 1332, 1335, 1336, 1337, 1339, 1342, 1344, 1347, 1360, 1361, 1361, 1363, 1366, 1367, 1370, 1372, 1375, 1376, 1377, 1377, 1380, 1382, 1383, 1383, 1389, 1389, 1392, 1395, 1397, 1397, 1398, 1401, 1402, 1402, 1403, 1404, 1410, 1412, 1415, 1416, 1422, 1422, 1423, 1424, 1425, 1426, 1427, 1429, 1433, 1433, 1434, 1437, 1438, 1441, 1442, 1444, 1446, 1450, 1453, 1453, 1454, 1455, 1456, 1456, 1459, 1462, 1462, 1469, 1470, 1470, 1470, 1473, 1475, 1476, 1478, 1478, 1480, 1486, 1488, 1493, 1493, 1494, 1495, 1497, 1498, 1498, 1500, 1504, 1504, 1506, 1507, 1508, 1511, 1511, 1513, 1515, 1523, 1524, 1524, 1526, 1530, 1532, 1535, 1537, 1540, 1541, 1542, 1542, 1543, 1544, 1546, 1552, 1554, 1555, 1559, 1560, 1560, 1564, 1571, 1578, 1581, 1582, 1583, 1586, 1589, 1596, 1596, 1597, 1603, 1606, 1607, 1608, 1609, 1611, 1612, 1615, 1616, 1618, 1621, 1621, 1623, 1625, 1632, 1633, 1634, 1635, 1640, 1642, 1648, 1648, 1649, 1658, 1659, 1660, 1664, 1665, 1669, 1681, 1685, 1688, 1689, 1689, 1695, 1695, 1699, 1700, 1710, 1712, 1713, 1713, 1714, 1718, 1720, 1721, 1728, 1728, 1730, 1732, 1735, 1736, 1739, 1741, 1744, 1750, 1751, 1751, 1755, 1758, 1763, 1763, 1764, 1768, 1774, 1774, 1778, 1779, 1779, 1784, 1789, 1789, 1792, 1792, 1792, 1795, 1797, 1801, 1803, 1807, 1809, 1814, 1816, 1816, 1818, 1821, 1824, 1825, 1829, 1833, 1836, 1836, 1836, 1838, 1838, 1843, 1847, 1850, 1850, 1853, 1855, 1855, 1855, 1855, 1857, 1859, 1861, 1862, 1863, 1863, 1863, 1863, 1864, 1865, 1866, 1868, 1870, 1874, 1878, 1879, 1880, 1882, 1884, 1891, 1895, 1895, 1896, 1898, 1901, 1902, 1904, 1905, 1907, 1908, 1909, 1910, 1917, 1919, 1921, 1921, 1925, 1932, 1933, 1936, 1938, 1944, 1946, 1952, 1953, 1954, 1955, 1956, 1956, 1958, 1961, 1963, 1968, 1970, 1973, 1976, 1977, 1977, 1981, 1983, 1984, 1988, 1994, 1994, 2001, 2002, 2011, 2011, 2014, 2014, 2014, 2014, 2016, 2018, 2020, 2024, 2027, 2029, 2029, 2034, 2035, 2035, 2037, 2039, 2041, 2045, 2045, 2046, 2047, 2049, 2051, 2062, 2063, 2063, 2063, 2066, 2072, 2074, 2078, 2079, 2082, 2087, 2088, 2089, 2091, 2094, 2096, 2097, 2103, 2103, 2104, 2104, 2105, 2108, 2116, 2117, 2120, 2125, 2128, 2129, 2131, 2135, 2138, 2144, 2150, 2150, 2151, 2152, 2153, 2153, 2158, 2160, 2161, 2163, 2164, 2165, 2170, 2172, 2173, 2176, 2179, 2187, 2187, 2189, 2190, 2190, 2190, 2191, 2193, 2198, 2198, 2198, 2202, 2205, 2206, 2208, 2209, 2211, 2213, 2215, 2215, 2220, 2220, 2222, 2227, 2228, 2229, 2230, 2233, 2236, 2236, 2242, 2242, 2248, 2250, 2256, 2256, 2257, 2259, 2261, 2263, 2266, 2267, 2268, 2270, 2270, 2271, 2273, 2275, 2275, 2276, 2277, 2277, 2277, 2277, 2278, 2279, 2285, 2286, 2288, 2290, 2291, 2306, 2310, 2311, 2313, 2314, 2315, 2318, 2319, 2325, 2325, 2326, 2328, 2331, 2334, 2335, 2336, 2342, 2343, 2345, 2347, 2353, 2354, 2355, 2358, 2359, 2359, 2362, 2362, 2368, 2370, 2371, 2376, 2379, 2381, 2381, 2388, 2388, 2390, 2392, 2394, 2395, 2396, 2396, 2401, 2401, 2403, 2403, 2407, 2414, 2420, 2423, 2423, 2423, 2424, 2426, 2427, 2432, 2432, 2433, 2433, 2435, 2435, 2439, 2440, 2447, 2448, 2454, 2454, 2458, 2461, 2467, 2468, 2469, 2470, 2470, 2471, 2472, 2475, 2475, 2478, 2479, 2484, 2486, 2489, 2490, 2492, 2494, 2498, 2498, 2507, 2508, 2508, 2509, 2510, 2510, 2512, 2514, 2514, 2514, 2515, 2518, 2518, 2520, 2523, 2523, 2525, 2526, 2527, 2527, 2529, 2533, 2533, 2538, 2539, 2543, 2550, 2552, 2552, 2557, 2559, 2567, 2571, 2573, 2574, 2577, 2583, 2586, 2587, 2588, 2590, 2592, 2598, 2604, 2607, 2608, 2608, 2608, 2608, 2612, 2613, 2614, 2616, 2618, 2620, 2625, 2626, 2627, 2627, 2629, 2636, 2636, 2638, 2639, 2640, 2641, 2650, 2650, 2651, 2657, 2657, 2658, 2658, 2660, 2660, 2661, 2662, 2667, 2673, 2673, 2674, 2675, 2676, 2676, 2678, 2685, 2686, 2687, 2688, 2689, 2689, 2691, 2691, 2693, 2697, 2697, 2702, 2705, 2706, 2706, 2707, 2707, 2713, 2714, 2719, 2722, 2734, 2734, 2737, 2738, 2739, 2744, 2747, 2748, 2751, 2755, 2757, 2759, 2761, 2764, 2767, 2768, 2784, 2784, 2784, 2787, 2788, 2789, 2790, 2794, 2801, 2801, 2805, 2805, 2810, 2811, 2814, 2817, 2817, 2820, 2821, 2826, 2827, 2828, 2829, 2829, 2830, 2831, 2832, 2832, 2832, 2833, 2834, 2835, 2835, 2836, 2837, 2838, 2842, 2845, 2847, 2849, 2849, 2851, 2851, 2855, 2859, 2859, 2863, 2864, 2866, 2867, 2870, 2870, 2872, 2873, 2875, 2876, 2877, 2878, 2878, 2878, 2881, 2885, 2889, 2890, 2892, 2894, 2895, 2897, 2898, 2898, 2899, 2900, 2900, 2902, 2903, 2906, 2908, 2908, 2911, 2913, 2917, 2920, 2923, 2928, 2928, 2928, 2929, 2929, 2936, 2936, 2937, 2940, 2940, 2941, 2946, 2946, 2948, 2952, 2956, 2958, 2961, 2966, 2969, 2969, 2970, 2971, 2973, 2973, 2976, 2977, 2978, 2980, 2985, 2985, 2985, 2987, 2989, 2989, 2994, 2995, 3000, 3000, 3002, 3003, 3004, 3005, 3009, 3012, 3015, 3016, 3018, 3018, 3019, 3020, 3021, 3024, 3027, 3027, 3028, 3028, 3035, 3038, 3041, 3041, 3043, 3044, 3045, 3046, 3047, 3049, 3049, 3050, 3050, 3051, 3054, 3055, 3056, 3059, 3061, 3063, 3064, 3067, 3069, 3069, 3070, 3072, 3075, 3075, 3076, 3078, 3084, 3087, 3087, 3088, 3089, 3093, 3093, 3099, 3102, 3111, 3111, 3113, 3113, 3114, 3115, 3115, 3116, 3122, 3125, 3127, 3129, 3130, 3130, 3134, 3137, 3139, 3141, 3141, 3142, 3142, 3146, 3147, 3148, 3149, 3150, 3151, 3156, 3156, 3162, 3163, 3165, 3166, 3168, 3169, 3171, 3171, 3171, 3171, 3172, 3173, 3176, 3176, 3177, 3178, 3184, 3184, 3184, 3184, 3186, 3188, 3188, 3190, 3190, 3190, 3190, 3191, 3192, 3197, 3197, 3198, 3198, 3199, 3202, 3206, 3206, 3211, 3213, 3213, 3213, 3214, 3216, 3217, 3218, 3218, 3226, 3226, 3227, 3227, 3229, 3233, 3237, 3239, 3245, 3248, 3251, 3252, 3253, 3255, 3256, 3258, 3261, 3263, 3264, 3266, 3269, 3269, 3270, 3271, 3280, 3281, 3281, 3282, 3285, 3285, 3287, 3287, 3288, 3288, 3294, 3295, 3300, 3306, 3307, 3311, 3312, 3315, 3318, 3319, 3320, 3320, 3325, 3327, 3328, 3329, 3332, 3337, 3338, 3338, 3342, 3343, 3344, 3346, 3350, 3351, 3352, 3352, 3355, 3362, 3365, 3365, 3366, 3368, 3368, 3369, 3373, 3376, 3381, 3382, 3385, 3392, 3394, 3403, 3404, 3404, 3405, 3410, 3410, 3416, 3416, 3419, 3423, 3427, 3428, 3430, 3434, 3434, 3434, 3435, 3437, 3440, 3446, 3447, 3455, 3456, 3466, 3471, 3472, 3476, 3478, 3490, 3491, 3495, 3498, 3500, 3501, 3503, 3504, 3504, 3505, 3506, 3507, 3507, 3508, 3508, 3508, 3508, 3512, 3513, 3514, 3514, 3514, 3520, 3521, 3521, 3523, 3524, 3524, 3528, 3528, 3528, 3529, 3529, 3530, 3530, 3532, 3532, 3533, 3535, 3535, 3538, 3539, 3539, 3539, 3540, 3541, 3542, 3544, 3544, 3544, 3544, 3546, 3547, 3548, 3548, 3551, 3552, 3553, 3555, 3555, 3560, 3561, 3564, 3565, 3570, 3574, 3574, 3578, 3585, 3585, 3587, 3587, 3588, 3588, 3593, 3595, 3598, 3599, 3600, 3601, 3603, 3610, 3610, 3611, 3612, 3612, 3613, 3613, 3614, 3614, 3615, 3615, 3616, 3617, 3618, 3624, 3628, 3628, 3628, 3630, 3632, 3633, 3634, 3634, 3635, 3637, 3638, 3642, 3645, 3646, 3647, 3648, 3649, 3650, 3654, 3655, 3660, 3663, 3669, 3673, 3673, 3679, 3689, 3689, 3690, 3690, 3691, 3697, 3703, 3703, 3707, 3709, 3710, 3712, 3712, 3714, 3715, 3716, 3717, 3718, 3724, 3726, 3726, 3727, 3734, 3734, 3738, 3738, 3739, 3739, 3743, 3743, 3746, 3747, 3747, 3749, 3750, 3753, 3754, 3759, 3760, 3760, 3761, 3761, 3763, 3764, 3764, 3765, 3767, 3767, 3771, 3771, 3771, 3771, 3772, 3773, 3775, 3776, 3780, 3781, 3787, 3790, 3791, 3792, 3792, 3792, 3793, 3794, 3794, 3796, 3796, 3799, 3801, 3804, 3806, 3810, 3810, 3810, 3811, 3816, 3819, 3820, 3824, 3824, 3825, 3831, 3833, 3834, 3835, 3839, 3845, 3845, 3846, 3846, 3847, 3851, 3852, 3852, 3852, 3854, 3857, 3860, 3862, 3862, 3862, 3862, 3866, 3866, 3867, 3871, 3877, 3877, 3878, 3879, 3884, 3885, 3885, 3887, 3889, 3889, 3891, 3894, 3894, 3899, 3904, 3907, 3910, 3912, 3913, 3914, 3917, 3918, 3920, 3922, 3926, 3929, 3930, 3932, 3933, 3933, 3937, 3939, 3939, 3940, 3942, 3951, 3952, 3957, 3958, 3958, 3963, 3963, 3968, 3970, 3970, 3972, 3974, 3975, 3976, 3977, 3980, 3981, 3981, 3985, 3987, 3988, 3989, 3991, 3992, 3993, 3994, 3996, 4003, 4003, 4005, 4006, 4007, 4011, 4011, 4011, 4012, 4012, 4012, 4015, 4015, 4015, 4018, 4021, 4025, 4027, 4029, 4032, 4032, 4033, 4034, 4037, 4040, 4042, 4045, 4047, 4048, 4049, 4049, 4049, 4050, 4050, 4055, 4058, 4059, 4060, 4062, 4064, 4064, 4069, 4071, 4072, 4072, 4072, 4085, 4086, 4086, 4088, 4092, 4096, 4097, 4099, 4099, 4100, 4112, 4115, 4116, 4118, 4119, 4120, 4124, 4124, 4125, 4125, 4129, 4133, 4136, 4137, 4139, 4140, 4140, 4143, 4150, 4155, 4156, 4158, 4161, 4162, 4163, 4164, 4166, 4167, 4168, 4171, 4174, 4178, 4186, 4187, 4187, 4188, 4189, 4192, 4194, 4198, 4202, 4206, 4208, 4211, 4213, 4214, 4219, 4222, 4222, 4223, 4224, 4226, 4228, 4229, 4230, 4234, 4234, 4243, 4244, 4249, 4251, 4252, 4255, 4260, 4261, 4262, 4262, 4262, 4263, 4265, 4267, 4268, 4269, 4273, 4274, 4275, 4275, 4276, 4276, 4280, 4280, 4280, 4282, 4284, 4288, 4289, 4290, 4295, 4295, 4296, 4299, 4302, 4303, 4305, 4306, 4307, 4311, 4316, 4317, 4317, 4324, 4326, 4331, 4334, 4334, 4341, 4344, 4347, 4350, 4350, 4359, 4360, 4360, 4361, 4363, 4365, 4365, 4367, 4367, 4368, 4369, 4371, 4372, 4372, 4374, 4380, 4381, 4383, 4385, 4386, 4388, 4389, 4390, 4391, 4394, 4395, 4399, 4401, 4402, 4405, 4406, 4409, 4415, 4415, 4417, 4423, 4424, 4428, 4428, 4428, 4432, 4434, 4434, 4436, 4439, 4440, 4442, 4442, 4444, 4448, 4449, 4451, 4452, 4452, 4455, 4457, 4458, 4463, 4464, 4465, 4466, 4468, 4469, 4470, 4471, 4471, 4471, 4473, 4475, 4476, 4479, 4479, 4482, 4489, 4492, 4493, 4493, 4495, 4496, 4496, 4498, 4499, 4499, 4501, 4504, 4505, 4506, 4508, 4508, 4515, 4520, 4520, 4521, 4521, 4522, 4524, 4524, 4532, 4532, 4536, 4537, 4540, 4541, 4542, 4543, 4545, 4545, 4545, 4549, 4549, 4550, 4552, 4553, 4554, 4554, 4560, 4562, 4563, 4564, 4566, 4567, 4568, 4569, 4575, 4575, 4578, 4578, 4580, 4581, 4583, 4589, 4589, 4592, 4595, 4596, 4597, 4597, 4601, 4602, 4603, 4605, 4605, 4606, 4608, 4610, 4619, 4622, 4623, 4623, 4626, 4628, 4629, 4630, 4631, 4634, 4635, 4635, 4637, 4638, 4639, 4645, 4646, 4646, 4648, 4651, 4652, 4653, 4655, 4656, 4657, 4658, 4662, 4663, 4667, 4669, 4669, 4670, 4673, 4675, 4676, 4677, 4677, 4680, 4687, 4687, 4688, 4693, 4694, 4695, 4695, 4696, 4696, 4697, 4700, 4701, 4702, 4705, 4706, 4708, 4714, 4717, 4719, 4719, 4723, 4724, 4726, 4732, 4733, 4738, 4738, 4741, 4742, 4754, 4754, 4757, 4758, 4758, 4759, 4760, 4763, 4763, 4763, 4766, 4766, 4768, 4769, 4769, 4769, 4771, 4771, 4774, 4774, 4779, 4782, 4782, 4783, 4784, 4788, 4788, 4789, 4790, 4792, 4795, 4795, 4796, 4797, 4799, 4806, 4807, 4810, 4810, 4812, 4814, 4815, 4818, 4818, 4819, 4827, 4828, 4832, 4836, 4839, 4840, 4840, 4842, 4848, 4851, 4852, 4856, 4860, 4860, 4863, 4863, 4864, 4865, 4870, 4871, 4871, 4871, 4874, 4877, 4877, 4880, 4881, 4882, 4884, 4884, 4884, 4885, 4889, 4890, 4891, 4891, 4892, 4893, 4893, 4895, 4902, 4903, 4903, 4907, 4912, 4913, 4914, 4916, 4920, 4921, 4921, 4922, 4927, 4932, 4935, 4936, 4937, 4939, 4943, 4945, 4946, 4947, 4952, 4961, 4965, 4965, 4966, 4967, 4971, 4973, 4974, 4979, 4982, 4983, 4983, 4985, 4986, 4988, 4989, 4990, 4998, 5000, 5000, 5001, 5002, 5003, 5004, 5004, 5009, 5015, 5019, 5020, 5021, 5021, 5021, 5022, 5023, 5024, 5025, 5027, 5032, 5036, 5037, 5039, 5039, 5047, 5048, 5048, 5049, 5055, 5057, 5058, 5059, 5060, 5066, 5066, 5067, 5074, 5075, 5076, 5077, 5079, 5081, 5081, 5083, 5083, 5086, 5086, 5086, 5086, 5089, 5092, 5093, 5094, 5097, 5098, 5101, 5102, 5103, 5103, 5103, 5110, 5111, 5112, 5113, 5114, 5119, 5125, 5126, 5132, 5137, 5139, 5139, 5143, 5144, 5145, 5145, 5146, 5146, 5149, 5152, 5153, 5153, 5153, 5153, 5154, 5155, 5158, 5158, 5163, 5164, 5165, 5165, 5167, 5168, 5170, 5171, 5175, 5181, 5186, 5189, 5191, 5192, 5194, 5195, 5197, 5197, 5197, 5199, 5201, 5205, 5210, 5213, 5215, 5215, 5222, 5222, 5222, 5223, 5223, 5225, 5226, 5227, 5228, 5229, 5229, 5230, 5236, 5237, 5237, 5240, 5246, 5247, 5248, 5248, 5249, 5250, 5254, 5255, 5256, 5257, 5258, 5262, 5267, 5269, 5272, 5274, 5277, 5280, 5282, 5282, 5282, 5282, 5283, 5286, 5290, 5291, 5294, 5295, 5296, 5297, 5298, 5299, 5299, 5300, 5301, 5301, 5303, 5305, 5308, 5310, 5310, 5313, 5314, 5314, 5315, 5323, 5327, 5334, 5334, 5335, 5340, 5347, 5347, 5348, 5351, 5353, 5359, 5372, 5379, 5382, 5382, 5384, 5384, 5388, 5389, 5391, 5394, 5396, 5406, 5406, 5406, 5407, 5409, 5410, 5413, 5413, 5414, 5416, 5416, 5418, 5420, 5424, 5425, 5425, 5426, 5429, 5430, 5430, 5434, 5435, 5438, 5441, 5441, 5444, 5444, 5444, 5446, 5447, 5447, 5448, 5449, 5450, 5452, 5453, 5453, 5453, 5454, 5457, 5457, 5458, 5463, 5463, 5464, 5464, 5465, 5467, 5468, 5468, 5470, 5471, 5471, 5477, 5478, 5480, 5484, 5484, 5486, 5487, 5491, 5493, 5494, 5496, 5497, 5497, 5499, 5499, 5501, 5503, 5511, 5513, 5516, 5517, 5518, 5519, 5522, 5524, 5528, 5529, 5530, 5533, 5535, 5536, 5538, 5538, 5538, 5542, 5544, 5546, 5546, 5553, 5554, 5555, 5556, 5560, 5562, 5563, 5563, 5563, 5568, 5569, 5576, 5577, 5582, 5583, 5585, 5586, 5587, 5590, 5591, 5595, 5596, 5596, 5598, 5603, 5604, 5607, 5608, 5612, 5614, 5625, 5625, 5627, 5635, 5639, 5640, 5643, 5643, 5648, 5651, 5651, 5652, 5653, 5655, 5655, 5656, 5660, 5661, 5661, 5662, 5665, 5665, 5667, 5667, 5668, 5673, 5676, 5677, 5677, 5677, 5678, 5679, 5680, 5684, 5689, 5696, 5697, 5698, 5701, 5713, 5714, 5714, 5717, 5717, 5720, 5721, 5724, 5728, 5730, 5731, 5732, 5732, 5733, 5738, 5739, 5740, 5740, 5746, 5746, 5749, 5751, 5751, 5752, 5752, 5755, 5756, 5757, 5757, 5759, 5760, 5761, 5767, 5771, 5772, 5773, 5776, 5781, 5782, 5782, 5783, 5787, 5788, 5792, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5810, 5810, 5811, 5812, 5812, 5817, 5817, 5817, 5819, 5820, 5822, 5822, 5824, 5829, 5833, 5833, 5836, 5838, 5841, 5842, 5843, 5844, 5846, 5849, 5856, 5859, 5860, 5861, 5862, 5862, 5863, 5865, 5868, 5869, 5870, 5879, 5879, 5886, 5886, 5886, 5887, 5887, 5889, 5889, 5892, 5893, 5893, 5896, 5897, 5899, 5905, 5910, 5912, 5912, 5913, 5915, 5915, 5916, 5917, 5919, 5920, 5920, 5921, 5925, 5928, 5928, 5934, 5935, 5937, 5937, 5938, 5940, 5941, 5942, 5944, 5946, 5948, 5948, 5950, 5951, 5956, 5961, 5962, 5962, 5962, 5966, 5966, 5970, 5972, 5974, 5975, 5976, 5976, 5981, 5982, 5985, 5985, 5985, 5985, 5987, 5992, 5993, 5994, 5995, 5998, 6001, 6002, 6002, 6002, 6006, 6011, 6013, 6016, 6019, 6023, 6024, 6024, 6025, 6028, 6029, 6030, 6031, 6032, 6035, 6037, 6045, 6045, 6046, 6047, 6049, 6051, 6053, 6054, 6057, 6057, 6059, 6060, 6062, 6062, 6063, 6064, 6066, 6070, 6073, 6074, 6075, 6075, 6078, 6078, 6080, 6081, 6082, 6083, 6085, 6088, 6088, 6089, 6090, 6091, 6091, 6091, 6093, 6095, 6096, 6096, 6097, 6097, 6100, 6100, 6101, 6103, 6105, 6107, 6109, 6110, 6113, 6117, 6117, 6119, 6120, 6121, 6121, 6123, 6125, 6126, 6128, 6129, 6130, 6134, 6134, 6138, 6141, 6142, 6143, 6145, 6147, 6148, 6149, 6151, 6152, 6154, 6163, 6168, 6169, 6169, 6172, 6173, 6175, 6178, 6179, 6181, 6181, 6181, 6184, 6186, 6186, 6187, 6188, 6190, 6196, 6198, 6198, 6202, 6205, 6205, 6207, 6211, 6211, 6211, 6212, 6214, 6217, 6218, 6218, 6219, 6220, 6223, 6224, 6225, 6226, 6226, 6227, 6228, 6231, 6234, 6234, 6236, 6236, 6242, 6244, 6245, 6249, 6250, 6252, 6256, 6257, 6257, 6260, 6261, 6261, 6262, 6264, 6265, 6267, 6267, 6267, 6268, 6270, 6271, 6271, 6272, 6274, 6277, 6277, 6280, 6282, 6283, 6285, 6288, 6290, 6291, 6291, 6292, 6292, 6292, 6305, 6306, 6311, 6312, 6313, 6313, 6313, 6316, 6316, 6317, 6317, 6320, 6320, 6321, 6321, 6322, 6323, 6324, 6324, 6325, 6327, 6328, 6329, 6337, 6338, 6338, 6340, 6343, 6346, 6349, 6352, 6353, 6357, 6357, 6358, 6359, 6359, 6360, 6363, 6365, 6366, 6367, 6367, 6370, 6371, 6374, 6377, 6378, 6381, 6384, 6384, 6385, 6385, 6386, 6387, 6391, 6393, 6394, 6394, 6395, 6398, 6400, 6404, 6407, 6407, 6412, 6415, 6416, 6419, 6423, 6423, 6424, 6427, 6428, 6429, 6432, 6434, 6437, 6443, 6443, 6449, 6449, 6449, 6451, 6453, 6453, 6455, 6456, 6456, 6457, 6460, 6460, 6460, 6465, 6467, 6471, 6472, 6472, 6474, 6479, 6479, 6480, 6480, 6483, 6483, 6484, 6485, 6488, 6488, 6489, 6490, 6495, 6499, 6499, 6507, 6508, 6508, 6513, 6513, 6515, 6517, 6517, 6521, 6522, 6527, 6528, 6529, 6531, 6532, 6535, 6536, 6538, 6540, 6541, 6543, 6546, 6548, 6549, 6551, 6552, 6553, 6555, 6556, 6558, 6572, 6572, 6577, 6578, 6583, 6584, 6586, 6587, 6590, 6591, 6603, 6604, 6604, 6605, 6606, 6607, 6609, 6610, 6610, 6611, 6612, 6612, 6613, 6619, 6622, 6625, 6625, 6626, 6630, 6635, 6635, 6640, 6644, 6646, 6647, 6647, 6649, 6655, 6655, 6656, 6659, 6663, 6667, 6670, 6674, 6676, 6677, 6677, 6677, 6679, 6679, 6682, 6684, 6685, 6686, 6692, 6692, 6695, 6697, 6699, 6701, 6706, 6707, 6708, 6709, 6714, 6723, 6726, 6727, 6728, 6729, 6729, 6732, 6735, 6736, 6737, 6739, 6740, 6740, 6748, 6750, 6752, 6754, 6754, 6758, 6762, 6762, 6764, 6765, 6768, 6771, 6771, 6772, 6775, 6776, 6776, 6778, 6781, 6783, 6784, 6790, 6791, 6792, 6792, 6796, 6799, 6801, 6805, 6808, 6808, 6809, 6809, 6809, 6811, 6814, 6816, 6816, 6817, 6817, 6820, 6823, 6823, 6824, 6825, 6826, 6827, 6831, 6833, 6833, 6839, 6840, 6841, 6841, 6842, 6842, 6843, 6845, 6849, 6852, 6854, 6855, 6856, 6862, 6862, 6866, 6868, 6871, 6873, 6874, 6874, 6876, 6877, 6878, 6881, 6882, 6884, 6884, 6889, 6898, 6899, 6902, 6903, 6903, 6905, 6906, 6906, 6907, 6910, 6913, 6914, 6914, 6915, 6920, 6925, 6929, 6933, 6934, 6936, 6936, 6937, 6945, 6947, 6947, 6947, 6948, 6949, 6950, 6951, 6957, 6957, 6959, 6960, 6961, 6963, 6966, 6967, 6968, 6970, 6973, 6975, 6977, 6981, 6982, 6985, 6986, 6987, 6988, 6989, 6992, 6995, 6996, 6997, 6998, 6998, 6998, 7000, 7000, 7002, 7002, 7005, 7011, 7011, 7012, 7012, 7014, 7016, 7019, 7022, 7022, 7025, 7026, 7026, 7028, 7030, 7030, 7032, 7033, 7034, 7035, 7035, 7037, 7040, 7043, 7047, 7050, 7051, 7052, 7054, 7058, 7058, 7059, 7060, 7060, 7061, 7069, 7072, 7073, 7075, 7079, 7084, 7085, 7088, 7088, 7090, 7091, 7094, 7094, 7097, 7100, 7103, 7104, 7108, 7109, 7114, 7115, 7118, 7119, 7120, 7122, 7128, 7128, 7130, 7135, 7137, 7138, 7142, 7143, 7145, 7147, 7148, 7148, 7152, 7154, 7156, 7159, 7159, 7160, 7161, 7161, 7162, 7165, 7169, 7169, 7172, 7174, 7175, 7177, 7182, 7185, 7185, 7185, 7186, 7187, 7195, 7196, 7198, 7200, 7202, 7203, 7204, 7205, 7210, 7213, 7213, 7214, 7217, 7220, 7221, 7223, 7224, 7226, 7227, 7231, 7233, 7234, 7235, 7238, 7238, 7242, 7246, 7249, 7249, 7250, 7251, 7255, 7259, 7265, 7271, 7271, 7272, 7273, 7276, 7279, 7279, 7280, 7282, 7284, 7285, 7286, 7287, 7289, 7291, 7291, 7292, 7292, 7292, 7294, 7297, 7299, 7299, 7303, 7307, 7307, 7308, 7308, 7309, 7317, 7318, 7323, 7323, 7324, 7325, 7332, 7334, 7336, 7337, 7337, 7337, 7342, 7343, 7347, 7347, 7349, 7355, 7356, 7356, 7356, 7360, 7360, 7364, 7364, 7369, 7373, 7375, 7375, 7377, 7377, 7381, 7381, 7382, 7382, 7383, 7385, 7387, 7387, 7388, 7389, 7389, 7392, 7394, 7394, 7395, 7398, 7398, 7399, 7400, 7400, 7403, 7403, 7404, 7409, 7413, 7414, 7414, 7419, 7426, 7429, 7429, 7430, 7434, 7436, 7437, 7440, 7442, 7443, 7444, 7452, 7454, 7455, 7456, 7456, 7456, 7457, 7460, 7463, 7466, 7466, 7468, 7469, 7470, 7474, 7474, 7476, 7480, 7480, 7485, 7489, 7489, 7496, 7498, 7500, 7501, 7501, 7501, 7509, 7514, 7520, 7520, 7522, 7523, 7523, 7527, 7528, 7530, 7534, 7534, 7536, 7536, 7538, 7543, 7544, 7544, 7548, 7550, 7550, 7553, 7556, 7558, 7559, 7561, 7563, 7563, 7572, 7575, 7576, 7579, 7579, 7587, 7588, 7588, 7591, 7592, 7595, 7596, 7603, 7603, 7606, 7607, 7609, 7609, 7611, 7612, 7613, 7618, 7618, 7628, 7628, 7633, 7640, 7640, 7641, 7643, 7643, 7643, 7652, 7652, 7654, 7659, 7659, 7662, 7662, 7663, 7664, 7665, 7667, 7674, 7675, 7677, 7678, 7679, 7679, 7681, 7683, 7686, 7686, 7687, 7693, 7694, 7695, 7696, 7701, 7702, 7706, 7711, 7713, 7714, 7715, 7715, 7717, 7721, 7722, 7722, 7724, 7724, 7725, 7731, 7733, 7733, 7734, 7736, 7737, 7741, 7746, 7746, 7751, 7753, 7758, 7759, 7766, 7768, 7770, 7771, 7776, 7779, 7781, 7787, 7789, 7790, 7791, 7794, 7795, 7797, 7800, 7801, 7801, 7802, 7803, 7804, 7806, 7808, 7808, 7811, 7812, 7812, 7815, 7816, 7817, 7822, 7822, 7825, 7827, 7828, 7829, 7829, 7830, 7830, 7830, 7831, 7835, 7838, 7839, 7839, 7842, 7847, 7850, 7852, 7853, 7855, 7859, 7860, 7863, 7866, 7867, 7872, 7875, 7882, 7885, 7886, 7887, 7887, 7887, 7888, 7889, 7889, 7895, 7896, 7900, 7901, 7901, 7905, 7909, 7910, 7911, 7913, 7914, 7915, 7916, 7919, 7923, 7926, 7926, 7928, 7928, 7929, 7930, 7931, 7932, 7932, 7934, 7934, 7935, 7937, 7938, 7940, 7940, 7944, 7946, 7947, 7948, 7948, 7952, 7953, 7959, 7960, 7960, 7963, 7964, 7965, 7965, 7966, 7967, 7971, 7972, 7972, 7979, 7982, 7984, 7984, 7986, 7989, 7993, 7997, 7997, 7998, 7999, 8000, 8001, 8002, 8007, 8012, 8015, 8021, 8024, 8027, 8034, 8034, 8040, 8041, 8045, 8045, 8046, 8047, 8048, 8049, 8053, 8057, 8057, 8058, 8061, 8061, 8063, 8066, 8069, 8073, 8074, 8074, 8076, 8079, 8081, 8083, 8083, 8084, 8084, 8088, 8089, 8089, 8090, 8093, 8096, 8097, 8106, 8107, 8108, 8110, 8110, 8113, 8113, 8114, 8115, 8117, 8119, 8119, 8121, 8121, 8122, 8125, 8127, 8128, 8129, 8129, 8131, 8134, 8135, 8136, 8136, 8138, 8139, 8139, 8139, 8140, 8140, 8140, 8141, 8141, 8143, 8144, 8146, 8146, 8148, 8148, 8149, 8149, 8149, 8150, 8150, 8150, 8151, 8157, 8157, 8161, 8162, 8163, 8163, 8166, 8168, 8168, 8168, 8169, 8169, 8170, 8175, 8176, 8179, 8180, 8180, 8182, 8183, 8184, 8187, 8189, 8194, 8196, 8197, 8200, 8201, 8204, 8207, 8211, 8211, 8213, 8213, 8219, 8220, 8220, 8220, 8221, 8223, 8225, 8225, 8228, 8229, 8229, 8231, 8231, 8234, 8235, 8236, 8238, 8246, 8248, 8249, 8250, 8252, 8255, 8258, 8268, 8275, 8276, 8276, 8277, 8280, 8281, 8286, 8286, 8287, 8287, 8287, 8290, 8293, 8295, 8296, 8301, 8301, 8304, 8305, 8306, 8306, 8307, 8314, 8314, 8318, 8318, 8318, 8318, 8319, 8319, 8324, 8324, 8325, 8325, 8326, 8327, 8329, 8332, 8335, 8336, 8341, 8342, 8345, 8346, 8348, 8349, 8353, 8354, 8355, 8356, 8356, 8357, 8362, 8365, 8366, 8367, 8367, 8370, 8370, 8370, 8372, 8372, 8374, 8374, 8380, 8381, 8383, 8384, 8390, 8392, 8396, 8396, 8397, 8397, 8401, 8405, 8411, 8412, 8413, 8415, 8416, 8421, 8422, 8426, 8427, 8432, 8433, 8433, 8435, 8438, 8440, 8440, 8440, 8441, 8442, 8444, 8449, 8451, 8452, 8452, 8454, 8455, 8460, 8464, 8465, 8467, 8469, 8469, 8469, 8470, 8471, 8474, 8474, 8476, 8478, 8479, 8482, 8483, 8487, 8488, 8489, 8490, 8491, 8493, 8496, 8499, 8501, 8507, 8507, 8509, 8513, 8514, 8514, 8514, 8515, 8516, 8518, 8518, 8524, 8524, 8525, 8530, 8530, 8542, 8542, 8545, 8545, 8546, 8547, 8550, 8556, 8556, 8559, 8571, 8574, 8576, 8576, 8578, 8583, 8590, 8591, 8592, 8595, 8595, 8596, 8596, 8596, 8598, 8600, 8600, 8605, 8607, 8610, 8615, 8618, 8621, 8623, 8624, 8625, 8628, 8628, 8628, 8629, 8630, 8631, 8636, 8639, 8640, 8641, 8644, 8645, 8646, 8647, 8648, 8649, 8649, 8650, 8650, 8651, 8653, 8654, 8655, 8655, 8658, 8660, 8661, 8670, 8672, 8674, 8675, 8675, 8675, 8677, 8678, 8683, 8691, 8693, 8693, 8693, 8698, 8698, 8700, 8701, 8703, 8707, 8715, 8716, 8717, 8723, 8723, 8727, 8728, 8737, 8739, 8739, 8741, 8746, 8747, 8750, 8752, 8753, 8754, 8756, 8757, 8761, 8762, 8762, 8767, 8769, 8769, 8770, 8771, 8774, 8779, 8780, 8782, 8788, 8789, 8789, 8791, 8792, 8794, 8795, 8795, 8796, 8797, 8798, 8801, 8801, 8803, 8805, 8806, 8806, 8807, 8809, 8811, 8816, 8818, 8820, 8821, 8822, 8822, 8822, 8823, 8825, 8826, 8830, 8834, 8835, 8837, 8839, 8840, 8840, 8841, 8842, 8846, 8847, 8847, 8850, 8852, 8855, 8855, 8858, 8859, 8860, 8861, 8863, 8863, 8867, 8867, 8867, 8871, 8872, 8872, 8873, 8873, 8876, 8880, 8892, 8894, 8897, 8900, 8902, 8904, 8907, 8907, 8912, 8913, 8914, 8915, 8919, 8922, 8923, 8927, 8928, 8931, 8934, 8935, 8939, 8940, 8940, 8943, 8944, 8944, 8951, 8951, 8955, 8956, 8959, 8960, 8960, 8961, 8962, 8966, 8967, 8968, 8969, 8969, 8969, 8973, 8973, 8974, 8974, 8977, 8977, 8981, 8982, 8985, 8992, 8993, 8994, 8996, 8998, 9000, 9003, 9004, 9009, 9011, 9013, 9013, 9013, 9015, 9016, 9017, 9017, 9018, 9018, 9028, 9029, 9030, 9031, 9031, 9032, 9035, 9036, 9038, 9039, 9042, 9046, 9046, 9047, 9048, 9053, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9064, 9065, 9066, 9067, 9070, 9070, 9073, 9074, 9075, 9088, 9093, 9095, 9097, 9097, 9098, 9100, 9104, 9107, 9109, 9112, 9116, 9116, 9117, 9118, 9119, 9120, 9128, 9128, 9128, 9129, 9131, 9132, 9133, 9136, 9137, 9137, 9138, 9139, 9142, 9142, 9145, 9146, 9149, 9149, 9149, 9156, 9157, 9160, 9163, 9164, 9166, 9166, 9167, 9167, 9168, 9171, 9177, 9178, 9180, 9180, 9181, 9185, 9189, 9193, 9193, 9194, 9200, 9201, 9202, 9202, 9204, 9205, 9208, 9215, 9222, 9230, 9239, 9241, 9244, 9247, 9250, 9251, 9252, 9261, 9264, 9265, 9268, 9269, 9269, 9272, 9273, 9273, 9276, 9277, 9282, 9289, 9294, 9294, 9299, 9300, 9301, 9305, 9306, 9306, 9307, 9316, 9318, 9320, 9321, 9324, 9327, 9332, 9333, 9335, 9337, 9337, 9338, 9338, 9339, 9339, 9340, 9341, 9342, 9345, 9347, 9352, 9354, 9354, 9355, 9355, 9355, 9356, 9356, 9360, 9360, 9362, 9366, 9367, 9367, 9368, 9371, 9371, 9371, 9375, 9377, 9379, 9380, 9385, 9388, 9390, 9390, 9394, 9394, 9396, 9396, 9398, 9403, 9404, 9404, 9406, 9406, 9407, 9408, 9409, 9411, 9412, 9413, 9415, 9416, 9416, 9427, 9430, 9433, 9435, 9436, 9440, 9440, 9442, 9448, 9449, 9452, 9455, 9460, 9460, 9461, 9462, 9463, 9464, 9465, 9467, 9471, 9472, 9474, 9478, 9478, 9485, 9486, 9496, 9497, 9503, 9506, 9506, 9507, 9508, 9514, 9516, 9516, 9518, 9519, 9520, 9522, 9527, 9528, 9529, 9531, 9533, 9535, 9536, 9538, 9539, 9540, 9542, 9542, 9543, 9544, 9544, 9551, 9554, 9557, 9557, 9558, 9560, 9561, 9562, 9564, 9565, 9567, 9570, 9572, 9573, 9573, 9575, 9575, 9577, 9577, 9577, 9578, 9580, 9584, 9585, 9585, 9589, 9590, 9590, 9591, 9592, 9592, 9596, 9597, 9600, 9601, 9602, 9603, 9607, 9614, 9616, 9617, 9617, 9621, 9621, 9622, 9628, 9633, 9635, 9636, 9639, 9641, 9641, 9643, 9643, 9651, 9661, 9662, 9662, 9662, 9663, 9663, 9664, 9664, 9665, 9670, 9674, 9676, 9678, 9682, 9682, 9683, 9685, 9689, 9691, 9691, 9695, 9696, 9697, 9699, 9706, 9707, 9708, 9709, 9710, 9711, 9716, 9716, 9719, 9720, 9721, 9738, 9740, 9740, 9745, 9745, 9746, 9750, 9750, 9750, 9753, 9756, 9756, 9757, 9760, 9764, 9767, 9777, 9780, 9781, 9782, 9782, 9782, 9783, 9784, 9784, 9785, 9788, 9792, 9792, 9794, 9795, 9797, 9800, 9803, 9806, 9809, 9810, 9810, 9812, 9813, 9814, 9814, 9815, 9816, 9818, 9822, 9827, 9827, 9827, 9830, 9832, 9836, 9837, 9837, 9838, 9838, 9840, 9840, 9841, 9841, 9842, 9844, 9844, 9847, 9847, 9849, 9850, 9850, 9850, 9850, 9851, 9854, 9855, 9857, 9859, 9860, 9861, 9865, 9869, 9872, 9878, 9885, 9885, 9886, 9887, 9889, 9890, 9892, 9895, 9899, 9900, 9901, 9903, 9903, 9907, 9915, 9916, 9916, 9917, 9919, 9920, 9925, 9931, 9932, 9933, 9938, 9939, 9939, 9942, 9943, 9943, 9947, 9949, 9951, 9956, 9958, 9959, 9960, 9962, 9965, 9967, 9968, 9969, 9970, 9971, 9972, 9972, 9973, 9973, 9974, 9975, 9978, 9978, 9980, 9981, 9982, 9983, 9984, 9986, 9987, 9991] Insertion: [0, 0, 1, 3, 8, 10, 11, 12, 14, 16, 16, 20, 21, 22, 22, 27, 28, 30, 32, 34, 35, 36, 38, 39, 39, 40, 41, 43, 44, 45, 45, 46, 50, 52, 52, 56, 57, 63, 64, 64, 69, 71, 74, 74, 78, 79, 79, 80, 81, 82, 85, 85, 90, 90, 94, 98, 99, 99, 100, 105, 114, 118, 118, 125, 125, 126, 126, 128, 128, 129, 129, 132, 136, 138, 139, 141, 147, 151, 154, 157, 161, 161, 161, 162, 168, 171, 177, 185, 190, 192, 195, 196, 198, 201, 203, 207, 208, 208, 213, 214, 218, 219, 221, 227, 228, 229, 233, 233, 237, 238, 238, 257, 258, 261, 264, 266, 274, 274, 278, 278, 279, 279, 284, 287, 288, 291, 292, 294, 295, 298, 306, 308, 308, 310, 312, 313, 315, 320, 320, 323, 323, 324, 328, 330, 338, 338, 338, 339, 340, 340, 342, 343, 347, 348, 349, 349, 351, 352, 355, 359, 362, 362, 362, 366, 367, 368, 370, 371, 373, 378, 379, 382, 385, 398, 400, 401, 401, 402, 403, 404, 404, 405, 406, 406, 408, 408, 409, 412, 412, 413, 414, 415, 416, 421, 425, 428, 428, 430, 431, 432, 433, 436, 438, 439, 440, 444, 447, 448, 449, 451, 452, 452, 453, 454, 455, 456, 458, 461, 462, 463, 465, 466, 466, 468, 469, 470, 471, 472, 473, 473, 474, 477, 481, 482, 482, 483, 484, 485, 487, 493, 498, 498, 499, 500, 500, 501, 502, 503, 503, 504, 504, 506, 509, 509, 510, 510, 514, 515, 518, 522, 524, 527, 528, 534, 534, 539, 539, 541, 544, 548, 552, 553, 554, 557, 559, 559, 562, 564, 569, 570, 571, 572, 575, 577, 581, 587, 587, 588, 590, 600, 602, 604, 609, 612, 612, 613, 614, 618, 619, 619, 623, 630, 630, 632, 634, 634, 635, 640, 640, 641, 641, 642, 642, 648, 650, 652, 655, 662, 663, 666, 666, 670, 674, 675, 678, 683, 685, 685, 687, 688, 689, 691, 693, 694, 697, 697, 700, 701, 701, 703, 703, 704, 705, 706, 708, 709, 712, 713, 715, 717, 719, 719, 722, 722, 723, 725, 727, 727, 730, 732, 733, 735, 736, 738, 740, 741, 741, 741, 742, 747, 747, 749, 754, 755, 758, 760, 763, 763, 763, 765, 770, 778, 780, 781, 781, 781, 782, 782, 787, 791, 795, 796, 797, 799, 803, 807, 808, 809, 810, 810, 811, 816, 818, 819, 819, 821, 821, 823, 824, 825, 826, 828, 829, 833, 835, 837, 844, 845, 849, 851, 858, 859, 864, 864, 866, 872, 877, 879, 881, 885, 886, 891, 891, 891, 899, 900, 904, 905, 908, 912, 912, 916, 920, 923, 927, 932, 933, 933, 935, 937, 937, 941, 942, 946, 946, 948, 951, 951, 953, 955, 956, 959, 959, 960, 961, 968, 975, 975, 977, 978, 979, 983, 983, 984, 1000, 1002, 1002, 1004, 1005, 1008, 1009, 1013, 1016, 1018, 1019, 1020, 1022, 1026, 1028, 1030, 1033, 1034, 1036, 1037, 1042, 1042, 1042, 1044, 1046, 1047, 1051, 1054, 1056, 1065, 1066, 1067, 1067, 1067, 1067, 1069, 1070, 1075, 1080, 1084, 1085, 1085, 1086, 1088, 1089, 1095, 1097, 1102, 1103, 1103, 1104, 1107, 1107, 1108, 1109, 1116, 1116, 1125, 1128, 1128, 1129, 1129, 1129, 1131, 1140, 1140, 1143, 1144, 1144, 1145, 1150, 1151, 1154, 1156, 1159, 1161, 1166, 1166, 1168, 1172, 1176, 1179, 1179, 1180, 1182, 1184, 1186, 1188, 1191, 1194, 1194, 1194, 1195, 1198, 1204, 1205, 1207, 1207, 1208, 1208, 1209, 1212, 1219, 1225, 1231, 1232, 1233, 1233, 1236, 1239, 1241, 1247, 1248, 1249, 1250, 1251, 1252, 1255, 1257, 1257, 1258, 1261, 1263, 1263, 1264, 1267, 1275, 1279, 1281, 1282, 1283, 1285, 1287, 1289, 1290, 1294, 1301, 1301, 1301, 1304, 1306, 1306, 1306, 1306, 1313, 1319, 1322, 1322, 1323, 1325, 1328, 1331, 1331, 1331, 1332, 1335, 1336, 1337, 1339, 1342, 1344, 1347, 1360, 1361, 1361, 1363, 1366, 1367, 1370, 1372, 1375, 1376, 1377, 1377, 1380, 1382, 1383, 1383, 1389, 1389, 1392, 1395, 1397, 1397, 1398, 1401, 1402, 1402, 1403, 1404, 1410, 1412, 1415, 1416, 1422, 1422, 1423, 1424, 1425, 1426, 1427, 1429, 1433, 1433, 1434, 1437, 1438, 1441, 1442, 1444, 1446, 1450, 1453, 1453, 1454, 1455, 1456, 1456, 1459, 1462, 1462, 1469, 1470, 1470, 1470, 1473, 1475, 1476, 1478, 1478, 1480, 1486, 1488, 1493, 1493, 1494, 1495, 1497, 1498, 1498, 1500, 1504, 1504, 1506, 1507, 1508, 1511, 1511, 1513, 1515, 1523, 1524, 1524, 1526, 1530, 1532, 1535, 1537, 1540, 1541, 1542, 1542, 1543, 1544, 1546, 1552, 1554, 1555, 1559, 1560, 1560, 1564, 1571, 1578, 1581, 1582, 1583, 1586, 1589, 1596, 1596, 1597, 1603, 1606, 1607, 1608, 1609, 1611, 1612, 1615, 1616, 1618, 1621, 1621, 1623, 1625, 1632, 1633, 1634, 1635, 1640, 1642, 1648, 1648, 1649, 1658, 1659, 1660, 1664, 1665, 1669, 1681, 1685, 1688, 1689, 1689, 1695, 1695, 1699, 1700, 1710, 1712, 1713, 1713, 1714, 1718, 1720, 1721, 1728, 1728, 1730, 1732, 1735, 1736, 1739, 1741, 1744, 1750, 1751, 1751, 1755, 1758, 1763, 1763, 1764, 1768, 1774, 1774, 1778, 1779, 1779, 1784, 1789, 1789, 1792, 1792, 1792, 1795, 1797, 1801, 1803, 1807, 1809, 1814, 1816, 1816, 1818, 1821, 1824, 1825, 1829, 1833, 1836, 1836, 1836, 1838, 1838, 1843, 1847, 1850, 1850, 1853, 1855, 1855, 1855, 1855, 1857, 1859, 1861, 1862, 1863, 1863, 1863, 1863, 1864, 1865, 1866, 1868, 1870, 1874, 1878, 1879, 1880, 1882, 1884, 1891, 1895, 1895, 1896, 1898, 1901, 1902, 1904, 1905, 1907, 1908, 1909, 1910, 1917, 1919, 1921, 1921, 1925, 1932, 1933, 1936, 1938, 1944, 1946, 1952, 1953, 1954, 1955, 1956, 1956, 1958, 1961, 1963, 1968, 1970, 1973, 1976, 1977, 1977, 1981, 1983, 1984, 1988, 1994, 1994, 2001, 2002, 2011, 2011, 2014, 2014, 2014, 2014, 2016, 2018, 2020, 2024, 2027, 2029, 2029, 2034, 2035, 2035, 2037, 2039, 2041, 2045, 2045, 2046, 2047, 2049, 2051, 2062, 2063, 2063, 2063, 2066, 2072, 2074, 2078, 2079, 2082, 2087, 2088, 2089, 2091, 2094, 2096, 2097, 2103, 2103, 2104, 2104, 2105, 2108, 2116, 2117, 2120, 2125, 2128, 2129, 2131, 2135, 2138, 2144, 2150, 2150, 2151, 2152, 2153, 2153, 2158, 2160, 2161, 2163, 2164, 2165, 2170, 2172, 2173, 2176, 2179, 2187, 2187, 2189, 2190, 2190, 2190, 2191, 2193, 2198, 2198, 2198, 2202, 2205, 2206, 2208, 2209, 2211, 2213, 2215, 2215, 2220, 2220, 2222, 2227, 2228, 2229, 2230, 2233, 2236, 2236, 2242, 2242, 2248, 2250, 2256, 2256, 2257, 2259, 2261, 2263, 2266, 2267, 2268, 2270, 2270, 2271, 2273, 2275, 2275, 2276, 2277, 2277, 2277, 2277, 2278, 2279, 2285, 2286, 2288, 2290, 2291, 2306, 2310, 2311, 2313, 2314, 2315, 2318, 2319, 2325, 2325, 2326, 2328, 2331, 2334, 2335, 2336, 2342, 2343, 2345, 2347, 2353, 2354, 2355, 2358, 2359, 2359, 2362, 2362, 2368, 2370, 2371, 2376, 2379, 2381, 2381, 2388, 2388, 2390, 2392, 2394, 2395, 2396, 2396, 2401, 2401, 2403, 2403, 2407, 2414, 2420, 2423, 2423, 2423, 2424, 2426, 2427, 2432, 2432, 2433, 2433, 2435, 2435, 2439, 2440, 2447, 2448, 2454, 2454, 2458, 2461, 2467, 2468, 2469, 2470, 2470, 2471, 2472, 2475, 2475, 2478, 2479, 2484, 2486, 2489, 2490, 2492, 2494, 2498, 2498, 2507, 2508, 2508, 2509, 2510, 2510, 2512, 2514, 2514, 2514, 2515, 2518, 2518, 2520, 2523, 2523, 2525, 2526, 2527, 2527, 2529, 2533, 2533, 2538, 2539, 2543, 2550, 2552, 2552, 2557, 2559, 2567, 2571, 2573, 2574, 2577, 2583, 2586, 2587, 2588, 2590, 2592, 2598, 2604, 2607, 2608, 2608, 2608, 2608, 2612, 2613, 2614, 2616, 2618, 2620, 2625, 2626, 2627, 2627, 2629, 2636, 2636, 2638, 2639, 2640, 2641, 2650, 2650, 2651, 2657, 2657, 2658, 2658, 2660, 2660, 2661, 2662, 2667, 2673, 2673, 2674, 2675, 2676, 2676, 2678, 2685, 2686, 2687, 2688, 2689, 2689, 2691, 2691, 2693, 2697, 2697, 2702, 2705, 2706, 2706, 2707, 2707, 2713, 2714, 2719, 2722, 2734, 2734, 2737, 2738, 2739, 2744, 2747, 2748, 2751, 2755, 2757, 2759, 2761, 2764, 2767, 2768, 2784, 2784, 2784, 2787, 2788, 2789, 2790, 2794, 2801, 2801, 2805, 2805, 2810, 2811, 2814, 2817, 2817, 2820, 2821, 2826, 2827, 2828, 2829, 2829, 2830, 2831, 2832, 2832, 2832, 2833, 2834, 2835, 2835, 2836, 2837, 2838, 2842, 2845, 2847, 2849, 2849, 2851, 2851, 2855, 2859, 2859, 2863, 2864, 2866, 2867, 2870, 2870, 2872, 2873, 2875, 2876, 2877, 2878, 2878, 2878, 2881, 2885, 2889, 2890, 2892, 2894, 2895, 2897, 2898, 2898, 2899, 2900, 2900, 2902, 2903, 2906, 2908, 2908, 2911, 2913, 2917, 2920, 2923, 2928, 2928, 2928, 2929, 2929, 2936, 2936, 2937, 2940, 2940, 2941, 2946, 2946, 2948, 2952, 2956, 2958, 2961, 2966, 2969, 2969, 2970, 2971, 2973, 2973, 2976, 2977, 2978, 2980, 2985, 2985, 2985, 2987, 2989, 2989, 2994, 2995, 3000, 3000, 3002, 3003, 3004, 3005, 3009, 3012, 3015, 3016, 3018, 3018, 3019, 3020, 3021, 3024, 3027, 3027, 3028, 3028, 3035, 3038, 3041, 3041, 3043, 3044, 3045, 3046, 3047, 3049, 3049, 3050, 3050, 3051, 3054, 3055, 3056, 3059, 3061, 3063, 3064, 3067, 3069, 3069, 3070, 3072, 3075, 3075, 3076, 3078, 3084, 3087, 3087, 3088, 3089, 3093, 3093, 3099, 3102, 3111, 3111, 3113, 3113, 3114, 3115, 3115, 3116, 3122, 3125, 3127, 3129, 3130, 3130, 3134, 3137, 3139, 3141, 3141, 3142, 3142, 3146, 3147, 3148, 3149, 3150, 3151, 3156, 3156, 3162, 3163, 3165, 3166, 3168, 3169, 3171, 3171, 3171, 3171, 3172, 3173, 3176, 3176, 3177, 3178, 3184, 3184, 3184, 3184, 3186, 3188, 3188, 3190, 3190, 3190, 3190, 3191, 3192, 3197, 3197, 3198, 3198, 3199, 3202, 3206, 3206, 3211, 3213, 3213, 3213, 3214, 3216, 3217, 3218, 3218, 3226, 3226, 3227, 3227, 3229, 3233, 3237, 3239, 3245, 3248, 3251, 3252, 3253, 3255, 3256, 3258, 3261, 3263, 3264, 3266, 3269, 3269, 3270, 3271, 3280, 3281, 3281, 3282, 3285, 3285, 3287, 3287, 3288, 3288, 3294, 3295, 3300, 3306, 3307, 3311, 3312, 3315, 3318, 3319, 3320, 3320, 3325, 3327, 3328, 3329, 3332, 3337, 3338, 3338, 3342, 3343, 3344, 3346, 3350, 3351, 3352, 3352, 3355, 3362, 3365, 3365, 3366, 3368, 3368, 3369, 3373, 3376, 3381, 3382, 3385, 3392, 3394, 3403, 3404, 3404, 3405, 3410, 3410, 3416, 3416, 3419, 3423, 3427, 3428, 3430, 3434, 3434, 3434, 3435, 3437, 3440, 3446, 3447, 3455, 3456, 3466, 3471, 3472, 3476, 3478, 3490, 3491, 3495, 3498, 3500, 3501, 3503, 3504, 3504, 3505, 3506, 3507, 3507, 3508, 3508, 3508, 3508, 3512, 3513, 3514, 3514, 3514, 3520, 3521, 3521, 3523, 3524, 3524, 3528, 3528, 3528, 3529, 3529, 3530, 3530, 3532, 3532, 3533, 3535, 3535, 3538, 3539, 3539, 3539, 3540, 3541, 3542, 3544, 3544, 3544, 3544, 3546, 3547, 3548, 3548, 3551, 3552, 3553, 3555, 3555, 3560, 3561, 3564, 3565, 3570, 3574, 3574, 3578, 3585, 3585, 3587, 3587, 3588, 3588, 3593, 3595, 3598, 3599, 3600, 3601, 3603, 3610, 3610, 3611, 3612, 3612, 3613, 3613, 3614, 3614, 3615, 3615, 3616, 3617, 3618, 3624, 3628, 3628, 3628, 3630, 3632, 3633, 3634, 3634, 3635, 3637, 3638, 3642, 3645, 3646, 3647, 3648, 3649, 3650, 3654, 3655, 3660, 3663, 3669, 3673, 3673, 3679, 3689, 3689, 3690, 3690, 3691, 3697, 3703, 3703, 3707, 3709, 3710, 3712, 3712, 3714, 3715, 3716, 3717, 3718, 3724, 3726, 3726, 3727, 3734, 3734, 3738, 3738, 3739, 3739, 3743, 3743, 3746, 3747, 3747, 3749, 3750, 3753, 3754, 3759, 3760, 3760, 3761, 3761, 3763, 3764, 3764, 3765, 3767, 3767, 3771, 3771, 3771, 3771, 3772, 3773, 3775, 3776, 3780, 3781, 3787, 3790, 3791, 3792, 3792, 3792, 3793, 3794, 3794, 3796, 3796, 3799, 3801, 3804, 3806, 3810, 3810, 3810, 3811, 3816, 3819, 3820, 3824, 3824, 3825, 3831, 3833, 3834, 3835, 3839, 3845, 3845, 3846, 3846, 3847, 3851, 3852, 3852, 3852, 3854, 3857, 3860, 3862, 3862, 3862, 3862, 3866, 3866, 3867, 3871, 3877, 3877, 3878, 3879, 3884, 3885, 3885, 3887, 3889, 3889, 3891, 3894, 3894, 3899, 3904, 3907, 3910, 3912, 3913, 3914, 3917, 3918, 3920, 3922, 3926, 3929, 3930, 3932, 3933, 3933, 3937, 3939, 3939, 3940, 3942, 3951, 3952, 3957, 3958, 3958, 3963, 3963, 3968, 3970, 3970, 3972, 3974, 3975, 3976, 3977, 3980, 3981, 3981, 3985, 3987, 3988, 3989, 3991, 3992, 3993, 3994, 3996, 4003, 4003, 4005, 4006, 4007, 4011, 4011, 4011, 4012, 4012, 4012, 4015, 4015, 4015, 4018, 4021, 4025, 4027, 4029, 4032, 4032, 4033, 4034, 4037, 4040, 4042, 4045, 4047, 4048, 4049, 4049, 4049, 4050, 4050, 4055, 4058, 4059, 4060, 4062, 4064, 4064, 4069, 4071, 4072, 4072, 4072, 4085, 4086, 4086, 4088, 4092, 4096, 4097, 4099, 4099, 4100, 4112, 4115, 4116, 4118, 4119, 4120, 4124, 4124, 4125, 4125, 4129, 4133, 4136, 4137, 4139, 4140, 4140, 4143, 4150, 4155, 4156, 4158, 4161, 4162, 4163, 4164, 4166, 4167, 4168, 4171, 4174, 4178, 4186, 4187, 4187, 4188, 4189, 4192, 4194, 4198, 4202, 4206, 4208, 4211, 4213, 4214, 4219, 4222, 4222, 4223, 4224, 4226, 4228, 4229, 4230, 4234, 4234, 4243, 4244, 4249, 4251, 4252, 4255, 4260, 4261, 4262, 4262, 4262, 4263, 4265, 4267, 4268, 4269, 4273, 4274, 4275, 4275, 4276, 4276, 4280, 4280, 4280, 4282, 4284, 4288, 4289, 4290, 4295, 4295, 4296, 4299, 4302, 4303, 4305, 4306, 4307, 4311, 4316, 4317, 4317, 4324, 4326, 4331, 4334, 4334, 4341, 4344, 4347, 4350, 4350, 4359, 4360, 4360, 4361, 4363, 4365, 4365, 4367, 4367, 4368, 4369, 4371, 4372, 4372, 4374, 4380, 4381, 4383, 4385, 4386, 4388, 4389, 4390, 4391, 4394, 4395, 4399, 4401, 4402, 4405, 4406, 4409, 4415, 4415, 4417, 4423, 4424, 4428, 4428, 4428, 4432, 4434, 4434, 4436, 4439, 4440, 4442, 4442, 4444, 4448, 4449, 4451, 4452, 4452, 4455, 4457, 4458, 4463, 4464, 4465, 4466, 4468, 4469, 4470, 4471, 4471, 4471, 4473, 4475, 4476, 4479, 4479, 4482, 4489, 4492, 4493, 4493, 4495, 4496, 4496, 4498, 4499, 4499, 4501, 4504, 4505, 4506, 4508, 4508, 4515, 4520, 4520, 4521, 4521, 4522, 4524, 4524, 4532, 4532, 4536, 4537, 4540, 4541, 4542, 4543, 4545, 4545, 4545, 4549, 4549, 4550, 4552, 4553, 4554, 4554, 4560, 4562, 4563, 4564, 4566, 4567, 4568, 4569, 4575, 4575, 4578, 4578, 4580, 4581, 4583, 4589, 4589, 4592, 4595, 4596, 4597, 4597, 4601, 4602, 4603, 4605, 4605, 4606, 4608, 4610, 4619, 4622, 4623, 4623, 4626, 4628, 4629, 4630, 4631, 4634, 4635, 4635, 4637, 4638, 4639, 4645, 4646, 4646, 4648, 4651, 4652, 4653, 4655, 4656, 4657, 4658, 4662, 4663, 4667, 4669, 4669, 4670, 4673, 4675, 4676, 4677, 4677, 4680, 4687, 4687, 4688, 4693, 4694, 4695, 4695, 4696, 4696, 4697, 4700, 4701, 4702, 4705, 4706, 4708, 4714, 4717, 4719, 4719, 4723, 4724, 4726, 4732, 4733, 4738, 4738, 4741, 4742, 4754, 4754, 4757, 4758, 4758, 4759, 4760, 4763, 4763, 4763, 4766, 4766, 4768, 4769, 4769, 4769, 4771, 4771, 4774, 4774, 4779, 4782, 4782, 4783, 4784, 4788, 4788, 4789, 4790, 4792, 4795, 4795, 4796, 4797, 4799, 4806, 4807, 4810, 4810, 4812, 4814, 4815, 4818, 4818, 4819, 4827, 4828, 4832, 4836, 4839, 4840, 4840, 4842, 4848, 4851, 4852, 4856, 4860, 4860, 4863, 4863, 4864, 4865, 4870, 4871, 4871, 4871, 4874, 4877, 4877, 4880, 4881, 4882, 4884, 4884, 4884, 4885, 4889, 4890, 4891, 4891, 4892, 4893, 4893, 4895, 4902, 4903, 4903, 4907, 4912, 4913, 4914, 4916, 4920, 4921, 4921, 4922, 4927, 4932, 4935, 4936, 4937, 4939, 4943, 4945, 4946, 4947, 4952, 4961, 4965, 4965, 4966, 4967, 4971, 4973, 4974, 4979, 4982, 4983, 4983, 4985, 4986, 4988, 4989, 4990, 4998, 5000, 5000, 5001, 5002, 5003, 5004, 5004, 5009, 5015, 5019, 5020, 5021, 5021, 5021, 5022, 5023, 5024, 5025, 5027, 5032, 5036, 5037, 5039, 5039, 5047, 5048, 5048, 5049, 5055, 5057, 5058, 5059, 5060, 5066, 5066, 5067, 5074, 5075, 5076, 5077, 5079, 5081, 5081, 5083, 5083, 5086, 5086, 5086, 5086, 5089, 5092, 5093, 5094, 5097, 5098, 5101, 5102, 5103, 5103, 5103, 5110, 5111, 5112, 5113, 5114, 5119, 5125, 5126, 5132, 5137, 5139, 5139, 5143, 5144, 5145, 5145, 5146, 5146, 5149, 5152, 5153, 5153, 5153, 5153, 5154, 5155, 5158, 5158, 5163, 5164, 5165, 5165, 5167, 5168, 5170, 5171, 5175, 5181, 5186, 5189, 5191, 5192, 5194, 5195, 5197, 5197, 5197, 5199, 5201, 5205, 5210, 5213, 5215, 5215, 5222, 5222, 5222, 5223, 5223, 5225, 5226, 5227, 5228, 5229, 5229, 5230, 5236, 5237, 5237, 5240, 5246, 5247, 5248, 5248, 5249, 5250, 5254, 5255, 5256, 5257, 5258, 5262, 5267, 5269, 5272, 5274, 5277, 5280, 5282, 5282, 5282, 5282, 5283, 5286, 5290, 5291, 5294, 5295, 5296, 5297, 5298, 5299, 5299, 5300, 5301, 5301, 5303, 5305, 5308, 5310, 5310, 5313, 5314, 5314, 5315, 5323, 5327, 5334, 5334, 5335, 5340, 5347, 5347, 5348, 5351, 5353, 5359, 5372, 5379, 5382, 5382, 5384, 5384, 5388, 5389, 5391, 5394, 5396, 5406, 5406, 5406, 5407, 5409, 5410, 5413, 5413, 5414, 5416, 5416, 5418, 5420, 5424, 5425, 5425, 5426, 5429, 5430, 5430, 5434, 5435, 5438, 5441, 5441, 5444, 5444, 5444, 5446, 5447, 5447, 5448, 5449, 5450, 5452, 5453, 5453, 5453, 5454, 5457, 5457, 5458, 5463, 5463, 5464, 5464, 5465, 5467, 5468, 5468, 5470, 5471, 5471, 5477, 5478, 5480, 5484, 5484, 5486, 5487, 5491, 5493, 5494, 5496, 5497, 5497, 5499, 5499, 5501, 5503, 5511, 5513, 5516, 5517, 5518, 5519, 5522, 5524, 5528, 5529, 5530, 5533, 5535, 5536, 5538, 5538, 5538, 5542, 5544, 5546, 5546, 5553, 5554, 5555, 5556, 5560, 5562, 5563, 5563, 5563, 5568, 5569, 5576, 5577, 5582, 5583, 5585, 5586, 5587, 5590, 5591, 5595, 5596, 5596, 5598, 5603, 5604, 5607, 5608, 5612, 5614, 5625, 5625, 5627, 5635, 5639, 5640, 5643, 5643, 5648, 5651, 5651, 5652, 5653, 5655, 5655, 5656, 5660, 5661, 5661, 5662, 5665, 5665, 5667, 5667, 5668, 5673, 5676, 5677, 5677, 5677, 5678, 5679, 5680, 5684, 5689, 5696, 5697, 5698, 5701, 5713, 5714, 5714, 5717, 5717, 5720, 5721, 5724, 5728, 5730, 5731, 5732, 5732, 5733, 5738, 5739, 5740, 5740, 5746, 5746, 5749, 5751, 5751, 5752, 5752, 5755, 5756, 5757, 5757, 5759, 5760, 5761, 5767, 5771, 5772, 5773, 5776, 5781, 5782, 5782, 5783, 5787, 5788, 5792, 5802, 5803, 5804, 5805, 5806, 5807, 5808, 5810, 5810, 5811, 5812, 5812, 5817, 5817, 5817, 5819, 5820, 5822, 5822, 5824, 5829, 5833, 5833, 5836, 5838, 5841, 5842, 5843, 5844, 5846, 5849, 5856, 5859, 5860, 5861, 5862, 5862, 5863, 5865, 5868, 5869, 5870, 5879, 5879, 5886, 5886, 5886, 5887, 5887, 5889, 5889, 5892, 5893, 5893, 5896, 5897, 5899, 5905, 5910, 5912, 5912, 5913, 5915, 5915, 5916, 5917, 5919, 5920, 5920, 5921, 5925, 5928, 5928, 5934, 5935, 5937, 5937, 5938, 5940, 5941, 5942, 5944, 5946, 5948, 5948, 5950, 5951, 5956, 5961, 5962, 5962, 5962, 5966, 5966, 5970, 5972, 5974, 5975, 5976, 5976, 5981, 5982, 5985, 5985, 5985, 5985, 5987, 5992, 5993, 5994, 5995, 5998, 6001, 6002, 6002, 6002, 6006, 6011, 6013, 6016, 6019, 6023, 6024, 6024, 6025, 6028, 6029, 6030, 6031, 6032, 6035, 6037, 6045, 6045, 6046, 6047, 6049, 6051, 6053, 6054, 6057, 6057, 6059, 6060, 6062, 6062, 6063, 6064, 6066, 6070, 6073, 6074, 6075, 6075, 6078, 6078, 6080, 6081, 6082, 6083, 6085, 6088, 6088, 6089, 6090, 6091, 6091, 6091, 6093, 6095, 6096, 6096, 6097, 6097, 6100, 6100, 6101, 6103, 6105, 6107, 6109, 6110, 6113, 6117, 6117, 6119, 6120, 6121, 6121, 6123, 6125, 6126, 6128, 6129, 6130, 6134, 6134, 6138, 6141, 6142, 6143, 6145, 6147, 6148, 6149, 6151, 6152, 6154, 6163, 6168, 6169, 6169, 6172, 6173, 6175, 6178, 6179, 6181, 6181, 6181, 6184, 6186, 6186, 6187, 6188, 6190, 6196, 6198, 6198, 6202, 6205, 6205, 6207, 6211, 6211, 6211, 6212, 6214, 6217, 6218, 6218, 6219, 6220, 6223, 6224, 6225, 6226, 6226, 6227, 6228, 6231, 6234, 6234, 6236, 6236, 6242, 6244, 6245, 6249, 6250, 6252, 6256, 6257, 6257, 6260, 6261, 6261, 6262, 6264, 6265, 6267, 6267, 6267, 6268, 6270, 6271, 6271, 6272, 6274, 6277, 6277, 6280, 6282, 6283, 6285, 6288, 6290, 6291, 6291, 6292, 6292, 6292, 6305, 6306, 6311, 6312, 6313, 6313, 6313, 6316, 6316, 6317, 6317, 6320, 6320, 6321, 6321, 6322, 6323, 6324, 6324, 6325, 6327, 6328, 6329, 6337, 6338, 6338, 6340, 6343, 6346, 6349, 6352, 6353, 6357, 6357, 6358, 6359, 6359, 6360, 6363, 6365, 6366, 6367, 6367, 6370, 6371, 6374, 6377, 6378, 6381, 6384, 6384, 6385, 6385, 6386, 6387, 6391, 6393, 6394, 6394, 6395, 6398, 6400, 6404, 6407, 6407, 6412, 6415, 6416, 6419, 6423, 6423, 6424, 6427, 6428, 6429, 6432, 6434, 6437, 6443, 6443, 6449, 6449, 6449, 6451, 6453, 6453, 6455, 6456, 6456, 6457, 6460, 6460, 6460, 6465, 6467, 6471, 6472, 6472, 6474, 6479, 6479, 6480, 6480, 6483, 6483, 6484, 6485, 6488, 6488, 6489, 6490, 6495, 6499, 6499, 6507, 6508, 6508, 6513, 6513, 6515, 6517, 6517, 6521, 6522, 6527, 6528, 6529, 6531, 6532, 6535, 6536, 6538, 6540, 6541, 6543, 6546, 6548, 6549, 6551, 6552, 6553, 6555, 6556, 6558, 6572, 6572, 6577, 6578, 6583, 6584, 6586, 6587, 6590, 6591, 6603, 6604, 6604, 6605, 6606, 6607, 6609, 6610, 6610, 6611, 6612, 6612, 6613, 6619, 6622, 6625, 6625, 6626, 6630, 6635, 6635, 6640, 6644, 6646, 6647, 6647, 6649, 6655, 6655, 6656, 6659, 6663, 6667, 6670, 6674, 6676, 6677, 6677, 6677, 6679, 6679, 6682, 6684, 6685, 6686, 6692, 6692, 6695, 6697, 6699, 6701, 6706, 6707, 6708, 6709, 6714, 6723, 6726, 6727, 6728, 6729, 6729, 6732, 6735, 6736, 6737, 6739, 6740, 6740, 6748, 6750, 6752, 6754, 6754, 6758, 6762, 6762, 6764, 6765, 6768, 6771, 6771, 6772, 6775, 6776, 6776, 6778, 6781, 6783, 6784, 6790, 6791, 6792, 6792, 6796, 6799, 6801, 6805, 6808, 6808, 6809, 6809, 6809, 6811, 6814, 6816, 6816, 6817, 6817, 6820, 6823, 6823, 6824, 6825, 6826, 6827, 6831, 6833, 6833, 6839, 6840, 6841, 6841, 6842, 6842, 6843, 6845, 6849, 6852, 6854, 6855, 6856, 6862, 6862, 6866, 6868, 6871, 6873, 6874, 6874, 6876, 6877, 6878, 6881, 6882, 6884, 6884, 6889, 6898, 6899, 6902, 6903, 6903, 6905, 6906, 6906, 6907, 6910, 6913, 6914, 6914, 6915, 6920, 6925, 6929, 6933, 6934, 6936, 6936, 6937, 6945, 6947, 6947, 6947, 6948, 6949, 6950, 6951, 6957, 6957, 6959, 6960, 6961, 6963, 6966, 6967, 6968, 6970, 6973, 6975, 6977, 6981, 6982, 6985, 6986, 6987, 6988, 6989, 6992, 6995, 6996, 6997, 6998, 6998, 6998, 7000, 7000, 7002, 7002, 7005, 7011, 7011, 7012, 7012, 7014, 7016, 7019, 7022, 7022, 7025, 7026, 7026, 7028, 7030, 7030, 7032, 7033, 7034, 7035, 7035, 7037, 7040, 7043, 7047, 7050, 7051, 7052, 7054, 7058, 7058, 7059, 7060, 7060, 7061, 7069, 7072, 7073, 7075, 7079, 7084, 7085, 7088, 7088, 7090, 7091, 7094, 7094, 7097, 7100, 7103, 7104, 7108, 7109, 7114, 7115, 7118, 7119, 7120, 7122, 7128, 7128, 7130, 7135, 7137, 7138, 7142, 7143, 7145, 7147, 7148, 7148, 7152, 7154, 7156, 7159, 7159, 7160, 7161, 7161, 7162, 7165, 7169, 7169, 7172, 7174, 7175, 7177, 7182, 7185, 7185, 7185, 7186, 7187, 7195, 7196, 7198, 7200, 7202, 7203, 7204, 7205, 7210, 7213, 7213, 7214, 7217, 7220, 7221, 7223, 7224, 7226, 7227, 7231, 7233, 7234, 7235, 7238, 7238, 7242, 7246, 7249, 7249, 7250, 7251, 7255, 7259, 7265, 7271, 7271, 7272, 7273, 7276, 7279, 7279, 7280, 7282, 7284, 7285, 7286, 7287, 7289, 7291, 7291, 7292, 7292, 7292, 7294, 7297, 7299, 7299, 7303, 7307, 7307, 7308, 7308, 7309, 7317, 7318, 7323, 7323, 7324, 7325, 7332, 7334, 7336, 7337, 7337, 7337, 7342, 7343, 7347, 7347, 7349, 7355, 7356, 7356, 7356, 7360, 7360, 7364, 7364, 7369, 7373, 7375, 7375, 7377, 7377, 7381, 7381, 7382, 7382, 7383, 7385, 7387, 7387, 7388, 7389, 7389, 7392, 7394, 7394, 7395, 7398, 7398, 7399, 7400, 7400, 7403, 7403, 7404, 7409, 7413, 7414, 7414, 7419, 7426, 7429, 7429, 7430, 7434, 7436, 7437, 7440, 7442, 7443, 7444, 7452, 7454, 7455, 7456, 7456, 7456, 7457, 7460, 7463, 7466, 7466, 7468, 7469, 7470, 7474, 7474, 7476, 7480, 7480, 7485, 7489, 7489, 7496, 7498, 7500, 7501, 7501, 7501, 7509, 7514, 7520, 7520, 7522, 7523, 7523, 7527, 7528, 7530, 7534, 7534, 7536, 7536, 7538, 7543, 7544, 7544, 7548, 7550, 7550, 7553, 7556, 7558, 7559, 7561, 7563, 7563, 7572, 7575, 7576, 7579, 7579, 7587, 7588, 7588, 7591, 7592, 7595, 7596, 7603, 7603, 7606, 7607, 7609, 7609, 7611, 7612, 7613, 7618, 7618, 7628, 7628, 7633, 7640, 7640, 7641, 7643, 7643, 7643, 7652, 7652, 7654, 7659, 7659, 7662, 7662, 7663, 7664, 7665, 7667, 7674, 7675, 7677, 7678, 7679, 7679, 7681, 7683, 7686, 7686, 7687, 7693, 7694, 7695, 7696, 7701, 7702, 7706, 7711, 7713, 7714, 7715, 7715, 7717, 7721, 7722, 7722, 7724, 7724, 7725, 7731, 7733, 7733, 7734, 7736, 7737, 7741, 7746, 7746, 7751, 7753, 7758, 7759, 7766, 7768, 7770, 7771, 7776, 7779, 7781, 7787, 7789, 7790, 7791, 7794, 7795, 7797, 7800, 7801, 7801, 7802, 7803, 7804, 7806, 7808, 7808, 7811, 7812, 7812, 7815, 7816, 7817, 7822, 7822, 7825, 7827, 7828, 7829, 7829, 7830, 7830, 7830, 7831, 7835, 7838, 7839, 7839, 7842, 7847, 7850, 7852, 7853, 7855, 7859, 7860, 7863, 7866, 7867, 7872, 7875, 7882, 7885, 7886, 7887, 7887, 7887, 7888, 7889, 7889, 7895, 7896, 7900, 7901, 7901, 7905, 7909, 7910, 7911, 7913, 7914, 7915, 7916, 7919, 7923, 7926, 7926, 7928, 7928, 7929, 7930, 7931, 7932, 7932, 7934, 7934, 7935, 7937, 7938, 7940, 7940, 7944, 7946, 7947, 7948, 7948, 7952, 7953, 7959, 7960, 7960, 7963, 7964, 7965, 7965, 7966, 7967, 7971, 7972, 7972, 7979, 7982, 7984, 7984, 7986, 7989, 7993, 7997, 7997, 7998, 7999, 8000, 8001, 8002, 8007, 8012, 8015, 8021, 8024, 8027, 8034, 8034, 8040, 8041, 8045, 8045, 8046, 8047, 8048, 8049, 8053, 8057, 8057, 8058, 8061, 8061, 8063, 8066, 8069, 8073, 8074, 8074, 8076, 8079, 8081, 8083, 8083, 8084, 8084, 8088, 8089, 8089, 8090, 8093, 8096, 8097, 8106, 8107, 8108, 8110, 8110, 8113, 8113, 8114, 8115, 8117, 8119, 8119, 8121, 8121, 8122, 8125, 8127, 8128, 8129, 8129, 8131, 8134, 8135, 8136, 8136, 8138, 8139, 8139, 8139, 8140, 8140, 8140, 8141, 8141, 8143, 8144, 8146, 8146, 8148, 8148, 8149, 8149, 8149, 8150, 8150, 8150, 8151, 8157, 8157, 8161, 8162, 8163, 8163, 8166, 8168, 8168, 8168, 8169, 8169, 8170, 8175, 8176, 8179, 8180, 8180, 8182, 8183, 8184, 8187, 8189, 8194, 8196, 8197, 8200, 8201, 8204, 8207, 8211, 8211, 8213, 8213, 8219, 8220, 8220, 8220, 8221, 8223, 8225, 8225, 8228, 8229, 8229, 8231, 8231, 8234, 8235, 8236, 8238, 8246, 8248, 8249, 8250, 8252, 8255, 8258, 8268, 8275, 8276, 8276, 8277, 8280, 8281, 8286, 8286, 8287, 8287, 8287, 8290, 8293, 8295, 8296, 8301, 8301, 8304, 8305, 8306, 8306, 8307, 8314, 8314, 8318, 8318, 8318, 8318, 8319, 8319, 8324, 8324, 8325, 8325, 8326, 8327, 8329, 8332, 8335, 8336, 8341, 8342, 8345, 8346, 8348, 8349, 8353, 8354, 8355, 8356, 8356, 8357, 8362, 8365, 8366, 8367, 8367, 8370, 8370, 8370, 8372, 8372, 8374, 8374, 8380, 8381, 8383, 8384, 8390, 8392, 8396, 8396, 8397, 8397, 8401, 8405, 8411, 8412, 8413, 8415, 8416, 8421, 8422, 8426, 8427, 8432, 8433, 8433, 8435, 8438, 8440, 8440, 8440, 8441, 8442, 8444, 8449, 8451, 8452, 8452, 8454, 8455, 8460, 8464, 8465, 8467, 8469, 8469, 8469, 8470, 8471, 8474, 8474, 8476, 8478, 8479, 8482, 8483, 8487, 8488, 8489, 8490, 8491, 8493, 8496, 8499, 8501, 8507, 8507, 8509, 8513, 8514, 8514, 8514, 8515, 8516, 8518, 8518, 8524, 8524, 8525, 8530, 8530, 8542, 8542, 8545, 8545, 8546, 8547, 8550, 8556, 8556, 8559, 8571, 8574, 8576, 8576, 8578, 8583, 8590, 8591, 8592, 8595, 8595, 8596, 8596, 8596, 8598, 8600, 8600, 8605, 8607, 8610, 8615, 8618, 8621, 8623, 8624, 8625, 8628, 8628, 8628, 8629, 8630, 8631, 8636, 8639, 8640, 8641, 8644, 8645, 8646, 8647, 8648, 8649, 8649, 8650, 8650, 8651, 8653, 8654, 8655, 8655, 8658, 8660, 8661, 8670, 8672, 8674, 8675, 8675, 8675, 8677, 8678, 8683, 8691, 8693, 8693, 8693, 8698, 8698, 8700, 8701, 8703, 8707, 8715, 8716, 8717, 8723, 8723, 8727, 8728, 8737, 8739, 8739, 8741, 8746, 8747, 8750, 8752, 8753, 8754, 8756, 8757, 8761, 8762, 8762, 8767, 8769, 8769, 8770, 8771, 8774, 8779, 8780, 8782, 8788, 8789, 8789, 8791, 8792, 8794, 8795, 8795, 8796, 8797, 8798, 8801, 8801, 8803, 8805, 8806, 8806, 8807, 8809, 8811, 8816, 8818, 8820, 8821, 8822, 8822, 8822, 8823, 8825, 8826, 8830, 8834, 8835, 8837, 8839, 8840, 8840, 8841, 8842, 8846, 8847, 8847, 8850, 8852, 8855, 8855, 8858, 8859, 8860, 8861, 8863, 8863, 8867, 8867, 8867, 8871, 8872, 8872, 8873, 8873, 8876, 8880, 8892, 8894, 8897, 8900, 8902, 8904, 8907, 8907, 8912, 8913, 8914, 8915, 8919, 8922, 8923, 8927, 8928, 8931, 8934, 8935, 8939, 8940, 8940, 8943, 8944, 8944, 8951, 8951, 8955, 8956, 8959, 8960, 8960, 8961, 8962, 8966, 8967, 8968, 8969, 8969, 8969, 8973, 8973, 8974, 8974, 8977, 8977, 8981, 8982, 8985, 8992, 8993, 8994, 8996, 8998, 9000, 9003, 9004, 9009, 9011, 9013, 9013, 9013, 9015, 9016, 9017, 9017, 9018, 9018, 9028, 9029, 9030, 9031, 9031, 9032, 9035, 9036, 9038, 9039, 9042, 9046, 9046, 9047, 9048, 9053, 9053, 9054, 9055, 9056, 9057, 9058, 9059, 9060, 9064, 9065, 9066, 9067, 9070, 9070, 9073, 9074, 9075, 9088, 9093, 9095, 9097, 9097, 9098, 9100, 9104, 9107, 9109, 9112, 9116, 9116, 9117, 9118, 9119, 9120, 9128, 9128, 9128, 9129, 9131, 9132, 9133, 9136, 9137, 9137, 9138, 9139, 9142, 9142, 9145, 9146, 9149, 9149, 9149, 9156, 9157, 9160, 9163, 9164, 9166, 9166, 9167, 9167, 9168, 9171, 9177, 9178, 9180, 9180, 9181, 9185, 9189, 9193, 9193, 9194, 9200, 9201, 9202, 9202, 9204, 9205, 9208, 9215, 9222, 9230, 9239, 9241, 9244, 9247, 9250, 9251, 9252, 9261, 9264, 9265, 9268, 9269, 9269, 9272, 9273, 9273, 9276, 9277, 9282, 9289, 9294, 9294, 9299, 9300, 9301, 9305, 9306, 9306, 9307, 9316, 9318, 9320, 9321, 9324, 9327, 9332, 9333, 9335, 9337, 9337, 9338, 9338, 9339, 9339, 9340, 9341, 9342, 9345, 9347, 9352, 9354, 9354, 9355, 9355, 9355, 9356, 9356, 9360, 9360, 9362, 9366, 9367, 9367, 9368, 9371, 9371, 9371, 9375, 9377, 9379, 9380, 9385, 9388, 9390, 9390, 9394, 9394, 9396, 9396, 9398, 9403, 9404, 9404, 9406, 9406, 9407, 9408, 9409, 9411, 9412, 9413, 9415, 9416, 9416, 9427, 9430, 9433, 9435, 9436, 9440, 9440, 9442, 9448, 9449, 9452, 9455, 9460, 9460, 9461, 9462, 9463, 9464, 9465, 9467, 9471, 9472, 9474, 9478, 9478, 9485, 9486, 9496, 9497, 9503, 9506, 9506, 9507, 9508, 9514, 9516, 9516, 9518, 9519, 9520, 9522, 9527, 9528, 9529, 9531, 9533, 9535, 9536, 9538, 9539, 9540, 9542, 9542, 9543, 9544, 9544, 9551, 9554, 9557, 9557, 9558, 9560, 9561, 9562, 9564, 9565, 9567, 9570, 9572, 9573, 9573, 9575, 9575, 9577, 9577, 9577, 9578, 9580, 9584, 9585, 9585, 9589, 9590, 9590, 9591, 9592, 9592, 9596, 9597, 9600, 9601, 9602, 9603, 9607, 9614, 9616, 9617, 9617, 9621, 9621, 9622, 9628, 9633, 9635, 9636, 9639, 9641, 9641, 9643, 9643, 9651, 9661, 9662, 9662, 9662, 9663, 9663, 9664, 9664, 9665, 9670, 9674, 9676, 9678, 9682, 9682, 9683, 9685, 9689, 9691, 9691, 9695, 9696, 9697, 9699, 9706, 9707, 9708, 9709, 9710, 9711, 9716, 9716, 9719, 9720, 9721, 9738, 9740, 9740, 9745, 9745, 9746, 9750, 9750, 9750, 9753, 9756, 9756, 9757, 9760, 9764, 9767, 9777, 9780, 9781, 9782, 9782, 9782, 9783, 9784, 9784, 9785, 9788, 9792, 9792, 9794, 9795, 9797, 9800, 9803, 9806, 9809, 9810, 9810, 9812, 9813, 9814, 9814, 9815, 9816, 9818, 9822, 9827, 9827, 9827, 9830, 9832, 9836, 9837, 9837, 9838, 9838, 9840, 9840, 9841, 9841, 9842, 9844, 9844, 9847, 9847, 9849, 9850, 9850, 9850, 9850, 9851, 9854, 9855, 9857, 9859, 9860, 9861, 9865, 9869, 9872, 9878, 9885, 9885, 9886, 9887, 9889, 9890, 9892, 9895, 9899, 9900, 9901, 9903, 9903, 9907, 9915, 9916, 9916, 9917, 9919, 9920, 9925, 9931, 9932, 9933, 9938, 9939, 9939, 9942, 9943, 9943, 9947, 9949, 9951, 9956, 9958, 9959, 9960, 9962, 9965, 9967, 9968, 9969, 9970, 9971, 9972, 9972, 9973, 9973, 9974, 9975, 9978, 9978, 9980, 9981, 9982, 9983, 9984, 9986, 9987, 9991]
import java.util.HashMap;
import java.lang.Integer;
import java.util.Scanner;
public class Hash {
public static void main(String[] args) {
HashMap<Integer, Integer> map = new HashMap<Integer, Integer>();
int[] arrayA = new int[70000]; //creating new hash map with 70000 possible values
for (int i = 0; i < 70000; i++) {
Integer key = (int) (Math.random() * 70000); //using math random to map the different keys
map.put(key, key);
arrayA[i] = key;
}
System.out.println("LookUp | BinarySearch");
double lookupTime = 0;
double binaryTime = 0;
// get num to search for from scanner
Scanner sc = new Scanner(System.in);
Integer num = sc.nextInt();
for (int i = 0; i < 12; i++) {
// check look up time
String output = " ";
long lookup = (lookUp(map, num));
lookupTime += lookup;
output += (lookup + ":");
// check binary search time
int[] arrayB = new int[70000];
System.arraycopy(arrayA, 0, arrayB, 0, arrayA.length);
long binary = (BinarySearch(arrayB, num));
binaryTime += binary;
output += (binary);
System.out.println(output);
}
System.out.println("Average time for lookup: " + (lookupTime / 12) + " | For binary search:" + (binaryTime / 12) + "");
}
public static long lookUp(HashMap<Integer, Integer> map, Integer key) {
long start = System.nanoTime(); //searching for the key from the hash table and counting the time it takes
map.containsKey(key);
long end = System.nanoTime();
return (end - start);
}
public static long BinarySearch(int[] numArray, Integer key) {
// must be sorted in increasing to decreasing order to search
long start = System.nanoTime();
// binary search
int low = 0;
int high = numArray.length - 1; //last index of the sortedArray, is equal to its length – 1.
int mid = low + ((high - low) / 2); // better than just ((high - low) / 2); because accounts for greater numbers
while (low <= high) { //When the method runs for the first time the low is 0 znd high is equal to its length – 1.
if (numArray[mid] < key) { // while loop compares the key with the array value of the middle index of the sortedArray.
low = mid + 1;
} else if (numArray[mid] == key) {
break;
} else { //If x is greater than the mid element, then x can only lie in the right half subarray after the mid element. So we recur for the right half.
high = mid - 1;
}
mid = low + ((high - low) / 2);
}
// overall algorithm is comparing the key value to the middle element to eliminate halves that it cant be part of
long end = System.nanoTime();
return (end - start); //overall time it takes
}
}
Hash.main(null);
LookUp | BinarySearch 5900:6600 1500:5100 1400:3500 1000:3000 700:3300 800:2900 1000:3300 700:3200 600:3300 1000:3400 600:3300 800:2900 Average time for lookup: 1333.3333333333333 | For binary search:3650.0