Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Write a program that removes duplicates from a set of 10000 random numbers. Use

ID: 3689638 • Letter: W

Question

Write a program that removes duplicates from a set of 10000 random numbers. Use each of the sorting methods in Chapter 10. Display the elapsed times for each sort. Display the sort method, list of duplicates removed, and the elapsed time in milliseconds for each sort.

I have been trying to figure out why my code is not working. I am getting an IndexOutOfBoundsException. Thank you in advance.

import java.util.*;
import java.text.DecimalFormat;

public class P6
{
static int SIZE = 10000;
static ArrayList<Integer> values = new ArrayList<Integer>();
//static int[] values = new int[SIZE]; // values to be sorted
static List<Integer> dup = new ArrayList<Integer>();

static void initValues()
// Initializes the values array with random integers from 0 to 99.
{
Random rand = new Random();
for (int index = 0; index < SIZE; index++)
values.add(Math.abs(rand.nextInt()) % 10000);
}

static public boolean isSorted()
// Returns true if the array values are sorted and false otherwise.
{
boolean sorted = true;
for (int index = 0; index < (SIZE - 1); index++)
if (values.get(index) > values.get(index+1))
sorted = false;
return sorted;
}

static public void deleteRepeats(ArrayList<Integer> values){
for(int index = 0; index <(values.size()); index++){
if(values.get(index)==values.get(index+1)){
dup.add(index);
values.remove(index);
System.out.print(dup);
SIZE--;
}
}
  
}
static public void swap(int index1, int index2)
// Precondition: index1 and index2 are >= 0 and < SIZE.
//
// Swaps the integers at locations index1 and index2 of the values array.
{
int temp = values.get(index1);
values.set(index1, values.get(index2));
values.set(index2,temp);
}

static public void printValues()
// Prints all the values integers.
{
int value;
DecimalFormat fmt = new DecimalFormat("00");
System.out.println("The values array is:");
for (int index = 0; index < SIZE; index++)
{
value = values.get(index);
if (((index + 1) % 10) == 0)
System.out.println(fmt.format(value));
else
System.out.print(fmt.format(value) + " ");
}
System.out.println();
}


/////////////////////////////////////////////////////////////////
//
// Selection Sort

static int minIndex(int startIndex, int endIndex)
// Returns the index of the smallest value in
// values[startIndex]..values[endIndex].
{
int indexOfMin = startIndex;
for (int index = startIndex + 1; index <= endIndex; index++)
if (values.get(index) < values.get(indexOfMin))
indexOfMin = index;
return indexOfMin;
}

static void selectionSort()
// Sorts the values array using the selection sort algorithm.
{
int endIndex = SIZE - 1;
for (int current = 0; current < endIndex; current++){
swap(current, minIndex(current, endIndex));
}
for (int current = 0; current < endIndex; current++){
deleteRepeats(values);
}
}


/////////////////////////////////////////////////////////////////
//
// Bubble Sort

static void bubbleUp(int startIndex, int endIndex)
// Switches adjacent pairs that are out of order
// between values[startIndex]..values[endIndex]
// beginning at values[endIndex].
{
for (int index = endIndex; index > startIndex; index--)
if (values.get(index) < values.get(index-1))
swap(index, index - 1);
}

static void bubbleSort()
// Sorts the values array using the bubble sort algorithm.
{
int current = 0;

while (current < (SIZE - 1))
{
bubbleUp(current, SIZE - 1);
current++;
}
}


/////////////////////////////////////////////////////////////////
//
// Short Bubble Sort

static boolean bubbleUp2(int startIndex, int endIndex)
// Switches adjacent pairs that are out of order
// between values[startIndex]..values[endIndex]
// beginning at values[endIndex].
//
// Returns false if a swap was made; otherwise, returns true.
{
boolean sorted = true;
for (int index = endIndex; index > startIndex; index--)
if (values.get(index) < values.get(index-1))
{
swap(index, index - 1);
sorted = false;
}
return sorted;
}

static void shortBubble()
// Sorts the values array using the bubble sort algorithm.
// The process stops as soon as values is sorted.
{
int current = 0;
boolean sorted = false;
while ((current < (SIZE - 1)) && !sorted)
{
sorted = bubbleUp2(current, SIZE - 1);
current++;
}
}


/////////////////////////////////////////////////////////////////
//
// Insertion Sort

static void insertItem(int startIndex, int endIndex)
// Upon completion, values[0]..values[endIndex] are sorted.
{
boolean finished = false;
int current = endIndex;
boolean moreToSearch = true;
while (moreToSearch && !finished)
{
if (values.get(current) < values.get(current-1))
{
swap(current, current - 1);
current--;
moreToSearch = (current != startIndex);
}
else
finished = true;
}
}

static void insertionSort()
// Sorts the values array using the insertion sort algorithm.
{
for (int count = 1; count < SIZE; count++)
insertItem(0, count);
}


/////////////////////////////////////////////////////////////////
//
// Merge Sort

static void merge (int leftFirst, int leftLast, int rightFirst, int rightLast)
// Preconditions: values[leftFirst]..values[leftLast] are sorted.
// values[rightFirst]..values[rightLast] are sorted.
//
// Sorts values[leftFirst]..values[rightLast] by merging the two subarrays.
{
List<Integer> tempArray = new ArrayList<Integer>(SIZE);
  
int index = leftFirst;
int saveFirst = leftFirst; // to remember where to copy back

while ((leftFirst <= leftLast) && (rightFirst <= rightLast))
{
if (values.get(leftFirst) < values.get(rightFirst))
{
tempArray.set(index, values.get(leftFirst));
leftFirst++;
}
else
{
tempArray.set(index,values.get(rightFirst));
rightFirst++;
}
index++;
}

while (leftFirst <= leftLast)
// Copy remaining items from left half.

{
tempArray.set(index,values.get(leftFirst));
leftFirst++;
index++;
}

while (rightFirst <= rightLast)
// Copy remaining items from right half.
{
tempArray.set(index,values.get(rightFirst));
rightFirst++;
index++;
}

for (index = saveFirst; index <= rightLast; index++)
values.set(index,tempArray.get(index));
}

static void mergeSort(int first, int last)
// Sorts the values array using the merge sort algorithm.
{
if (first < last)
{
int middle = (first + last) / 2;
mergeSort(first, middle);
mergeSort(middle + 1, last);
merge(first, middle, middle + 1, last);
}
}


/////////////////////////////////////////////////////////////////
//
// Quick Sort

static int split(int first, int last)
{
int splitVal = values.get(first);
int saveF = first;
boolean onCorrectSide;

first++;
do
{
> while (onCorrectSide) // move first toward last
if (values.get(first) > splitVal)
> else
{
first++;
<= last);
}

<= last);
while (onCorrectSide) // move last toward first
if (values.get(last) <= splitVal)
> else
{
last--;
<= last);
}

if (first < last)
{
swap(first, last);
first++;
last--;
}
} while (first <= last);

swap(saveF, last);
return last;
}

static void quickSort(int first, int last)
{
if (first < last)
{
int splitPoint;

splitPoint = split(first, last);
// values[first]..values[splitPoint - 1] <= splitVal
// values[splitPoint] = splitVal
// values[splitPoint+1]..values[last] > splitVal

quickSort(first, splitPoint - 1);
quickSort(splitPoint + 1, last);
}
}


/////////////////////////////////////////////////////////////////
//
// Heap Sort

static int newHole(int hole, int lastIndex, int item)
// If either child of hole is larger than item this returns the index
// of the larger child; otherwise it returns the index of hole.
{
int left = (hole * 2) + 1;
int right = (hole * 2) + 2;
if (left > lastIndex)
// hole has no children
return hole;   
else
if (left == lastIndex)
// hole has left child only
if (item < values.get(left))   
// item < left child
return left;
else
// item >= left child
return hole;
else
// hole has two children
if (values.get(left) < values.get(right))
// left child < right child
if (values.get(right) <= item)
// right child <= item
return hole;
else
// item < right child
return right;
else
// left child >= right child
if (values.get(left) <= item)
// left child <= item
return hole;
else
// item < left child
return left;
}

static void reheapDown(int item, int root, int lastIndex)
// Precondition: Current root position is "empty".
//
// Inserts item into the tree and ensures shape and order properties.
{
int hole = root; // current index of hole
int newhole; // index where hole should move to

newhole = newHole(hole, lastIndex, item); // find next hole
while (newhole != hole)
{
values.set(hole, values.get(newhole)); // move value up
hole = newhole; // move hole down
newhole = newHole(hole, lastIndex, item); // find next hole
}
values.set(hole,item); // fill in the final hole
}

static void heapSort()
// Sorts the values array using the heap sort algorithm.
{
int index;
// Convert the array of values into a heap.
for (index = SIZE/2 - 1; index >= 0; index--)
reheapDown(values.get(index), index, SIZE - 1);

// Sort the array.
for (index = SIZE - 1; index >=1; index--)
{
swap(0, index);
reheapDown(values.get(0), 0, index - 1);
}
}

/////////////////////////////////////////////////////////////////
//
// Main

public static void main(String[] args)
{
initValues();
printValues();
System.out.println("values is sorted: " + isSorted());
System.out.println();
  
// make call to sorting method here (just remove //)
selectionSort();
// bubbleSort();
// shortBubble();
// insertionSort();
// mergeSort(0, SIZE - 1);
// quickSort(0, SIZE - 1);
// heapSort();

printValues();
System.out.println("values is sorted: " + isSorted());
System.out.println();
}
}

Explanation / Answer

Hi, I have made a small change. Highlighted line is the change in code. it is working fine now.

P6.java

import java.util.*;
import java.text.DecimalFormat;
public class P6
{
static int SIZE = 10000;
static ArrayList<Integer> values = new ArrayList<Integer>();
//static int[] values = new int[SIZE]; // values to be sorted
static List<Integer> dup = new ArrayList<Integer>();
static void initValues()
// Initializes the values array with random integers from 0 to 99.
{
Random rand = new Random();
for (int index = 0; index < SIZE; index++)
values.add(Math.abs(rand.nextInt()) % 10000);
}
static public boolean isSorted()
// Returns true if the array values are sorted and false otherwise.
{
boolean sorted = true;
for (int index = 0; index < (SIZE - 1); index++)
if (values.get(index) > values.get(index+1))
sorted = false;
return sorted;
}
static public void deleteRepeats(ArrayList<Integer> values){
for(int index = 0; index <(values.size()-1); index++){
if(values.get(index)==values.get(index+1)){
dup.add(index);
values.remove(index);
System.out.print(dup);
SIZE--;
}
}
  
}
static public void swap(int index1, int index2)
// Precondition: index1 and index2 are >= 0 and < SIZE.
//
// Swaps the integers at locations index1 and index2 of the values array.
{
int temp = values.get(index1);
values.set(index1, values.get(index2));
values.set(index2,temp);
}
static public void printValues()
// Prints all the values integers.
{
int value;
DecimalFormat fmt = new DecimalFormat("00");
System.out.println("The values array is:");
for (int index = 0; index < SIZE; index++)
{
value = values.get(index);
if (((index + 1) % 10) == 0)
System.out.println(fmt.format(value));
else
System.out.print(fmt.format(value) + " ");
}
System.out.println();
}

/////////////////////////////////////////////////////////////////
//
// Selection Sort
static int minIndex(int startIndex, int endIndex)
// Returns the index of the smallest value in
// values[startIndex]..values[endIndex].
{
int indexOfMin = startIndex;
for (int index = startIndex + 1; index <= endIndex; index++)
if (values.get(index) < values.get(indexOfMin))
indexOfMin = index;
return indexOfMin;
}
static void selectionSort()
// Sorts the values array using the selection sort algorithm.
{
int endIndex = SIZE - 1;
for (int current = 0; current < endIndex; current++){
swap(current, minIndex(current, endIndex));
}
for (int current = 0; current < endIndex; current++){
deleteRepeats(values);
}
}

/////////////////////////////////////////////////////////////////
//
// Bubble Sort
static void bubbleUp(int startIndex, int endIndex)
// Switches adjacent pairs that are out of order
// between values[startIndex]..values[endIndex]
// beginning at values[endIndex].
{
for (int index = endIndex; index > startIndex; index--)
if (values.get(index) < values.get(index-1))
swap(index, index - 1);
}

static void bubbleSort()
// Sorts the values array using the bubble sort algorithm.
{
int current = 0;

while (current < (SIZE - 1))
{
bubbleUp(current, SIZE - 1);
current++;
}
}

/////////////////////////////////////////////////////////////////
//
// Short Bubble Sort
static boolean bubbleUp2(int startIndex, int endIndex)
// Switches adjacent pairs that are out of order
// between values[startIndex]..values[endIndex]
// beginning at values[endIndex].
//
// Returns false if a swap was made; otherwise, returns true.
{
boolean sorted = true;
for (int index = endIndex; index > startIndex; index--)
if (values.get(index) < values.get(index-1))
{
swap(index, index - 1);
sorted = false;
}
return sorted;
}

static void shortBubble()
// Sorts the values array using the bubble sort algorithm.
// The process stops as soon as values is sorted.
{
int current = 0;
boolean sorted = false;
while ((current < (SIZE - 1)) && !sorted)
{
sorted = bubbleUp2(current, SIZE - 1);
current++;
}
}

/////////////////////////////////////////////////////////////////
//
// Insertion Sort
static void insertItem(int startIndex, int endIndex)
// Upon completion, values[0]..values[endIndex] are sorted.
{
boolean finished = false;
int current = endIndex;
boolean moreToSearch = true;
while (moreToSearch && !finished)
{
if (values.get(current) < values.get(current-1))
{
swap(current, current - 1);
current--;
moreToSearch = (current != startIndex);
}
else
finished = true;
}
}

static void insertionSort()
// Sorts the values array using the insertion sort algorithm.
{
for (int count = 1; count < SIZE; count++)
insertItem(0, count);
}

/////////////////////////////////////////////////////////////////
//
// Merge Sort
static void merge (int leftFirst, int leftLast, int rightFirst, int rightLast)
// Preconditions: values[leftFirst]..values[leftLast] are sorted.
// values[rightFirst]..values[rightLast] are sorted.
//
// Sorts values[leftFirst]..values[rightLast] by merging the two subarrays.
{
List<Integer> tempArray = new ArrayList<Integer>(SIZE);
  
int index = leftFirst;
int saveFirst = leftFirst; // to remember where to copy back

while ((leftFirst <= leftLast) && (rightFirst <= rightLast))
{
if (values.get(leftFirst) < values.get(rightFirst))
{
tempArray.set(index, values.get(leftFirst));
leftFirst++;
}
else
{
tempArray.set(index,values.get(rightFirst));
rightFirst++;
}
index++;
}

while (leftFirst <= leftLast)
// Copy remaining items from left half.

{
tempArray.set(index,values.get(leftFirst));
leftFirst++;
index++;
}

while (rightFirst <= rightLast)
// Copy remaining items from right half.
{
tempArray.set(index,values.get(rightFirst));
rightFirst++;
index++;
}

for (index = saveFirst; index <= rightLast; index++)
values.set(index,tempArray.get(index));
}
static void mergeSort(int first, int last)
// Sorts the values array using the merge sort algorithm.
{
if (first < last)
{
int middle = (first + last) / 2;
mergeSort(first, middle);
mergeSort(middle + 1, last);
merge(first, middle, middle + 1, last);
}
}

/////////////////////////////////////////////////////////////////
//
// Quick Sort
static int split(int first, int last)
{
int splitVal = values.get(first);
int saveF = first;
boolean onCorrectSide;

first++;
do
{
> while (onCorrectSide) // move first toward last
if (values.get(first) > splitVal)
> else
{
first++;
<= last);
}

<= last);
while (onCorrectSide) // move last toward first
if (values.get(last) <= splitVal)
> else
{
last--;
<= last);
}

if (first < last)
{
swap(first, last);
first++;
last--;
}
} while (first <= last);

swap(saveF, last);
return last;
}
static void quickSort(int first, int last)
{
if (first < last)
{
int splitPoint;

splitPoint = split(first, last);
// values[first]..values[splitPoint - 1] <= splitVal
// values[splitPoint] = splitVal
// values[splitPoint+1]..values[last] > splitVal

quickSort(first, splitPoint - 1);
quickSort(splitPoint + 1, last);
}
}

/////////////////////////////////////////////////////////////////
//
// Heap Sort
static int newHole(int hole, int lastIndex, int item)
// If either child of hole is larger than item this returns the index
// of the larger child; otherwise it returns the index of hole.
{
int left = (hole * 2) + 1;
int right = (hole * 2) + 2;
if (left > lastIndex)
// hole has no children
return hole;   
else
if (left == lastIndex)
// hole has left child only
if (item < values.get(left))   
// item < left child
return left;
else
// item >= left child
return hole;
else
// hole has two children
if (values.get(left) < values.get(right))
// left child < right child
if (values.get(right) <= item)
// right child <= item
return hole;
else
// item < right child
return right;
else
// left child >= right child
if (values.get(left) <= item)
// left child <= item
return hole;
else
// item < left child
return left;
}
static void reheapDown(int item, int root, int lastIndex)
// Precondition: Current root position is "empty".
//
// Inserts item into the tree and ensures shape and order properties.
{
int hole = root; // current index of hole
int newhole; // index where hole should move to
newhole = newHole(hole, lastIndex, item); // find next hole
while (newhole != hole)
{
values.set(hole, values.get(newhole)); // move value up
hole = newhole; // move hole down
newhole = newHole(hole, lastIndex, item); // find next hole
}
values.set(hole,item); // fill in the final hole
}
static void heapSort()
// Sorts the values array using the heap sort algorithm.
{
int index;
// Convert the array of values into a heap.
for (index = SIZE/2 - 1; index >= 0; index--)
reheapDown(values.get(index), index, SIZE - 1);

// Sort the array.
for (index = SIZE - 1; index >=1; index--)
{
swap(0, index);
reheapDown(values.get(0), 0, index - 1);
}
}
/////////////////////////////////////////////////////////////////
//
// Main
public static void main(String[] args)
{
initValues();
printValues();
System.out.println("values is sorted: " + isSorted());
System.out.println();
  
// make call to sorting method here (just remove //)
selectionSort();
// bubbleSort();
// shortBubble();
// insertionSort();
// mergeSort(0, SIZE - 1);
// quickSort(0, SIZE - 1);
// heapSort();
System.out.println(" ------------------------------------------------------------ ");
printValues();
System.out.println("values is sorted: " + isSorted());
System.out.println();
}
}

Output:

5669 4945 9685 1831 2135 1703 3620 4415 7526 9351
3293 5961 9295 1007 1120 7965 5188 5502 8450 4774
7461 5853 5107 3334 9485 3635 5755 1589 17 5957
8584 7904 3353 5687 2955 2726 7770 7516 8124 3628
8685 4414 9862 8857 6180 8219 7805 5094 3619 8945
4061 896 7329 8418 7856 3485 8190 9076 6076 6161
2741 2238 2224 8371 5585 6480 2564 7637 9153 6734
9992 9899 3735 4498 3909 7686 87 5690 7998 2938
374 278 4046 5334 7525 5564 4211 611 1982 981
8668 6025 1704 1606 3674 883 4939 2812 3033 8736
9634 1184 3552 2077 1818 6235 5868 8652 3992 5176
2120 879 3512 9507 6346 2689 6189 8849 9951 2642
9709 9272 6117 5357 8672 9792 3037 3628 4916 2987
6546 3409 7984 7986 9789 4621 2704 6879 8888 176
7224 1252 1349 5362 2391 1842 7168 5875 7426 8359
3957 9967 9769 5173 2550 6087 8613 3400 2942 2992
6352 7180 1486 5630 5843 5860 4279 4939 5823 7003
3936 5659 5712 8162 8372 1858 3570 1632 3049 1419
5627 6350 4080 8968 2496 5641 1368 9311 9199 5350
8241 9659 4727 6447 703 7638 8685 9867 4699 1163
6481 6846 3603 7285 6650 262 9098 4455 6652 3452
88 6542 1156 6950 3819 4128 7129 8515 9250 5569
2118 9806 97 8331 6341 576 5487 3842 2888 5001
2607 748 4364 4975 2231 8309 5836 9517 5974 12
8131 3192 6746 8164 2873 6635 5885 2369 7813 3673
2733 315 3134 9219 4422 4473 2414 5714 4431 5857
9462 4664 6914 6993 8409 6615 645 6540 3601 8265
4673 8294 8945 5986 1765 7819 74 2643 4943 512
1968 463 5233 7989 8437 115 1413 6164 8378 3727
5066 2335 2079 9233 8857 8258 4832 9829 64 6666
6764 828 494 911 9800 3508 2130 2426 3529 7817
7079 3624 2927 2174 2597 2791 7513 3624 2854 3619
8701 3182 1928 6500 8405 1414 2647 8698 6647 5216
111 8850 7191 1259 4758 9838 6306 2660 4152 790
3077 4158 7650 8655 1856 1774 8255 9204 1971 8747
336 9020 5104 6807 9952 1177 4961 8166 4091 2038
148 4735 587 9959 1905 1260 1404 2155 1772 9850
4928 8654 5084 4434 9939 9298 4939 5287 4382 2019
9933 1821 7280 3160 7800 4838 2810 3333 2379 5915
1046 9097 2625 3013 4348 3331 6138 5254 5740 3729
1430 5360 5855 7005 8100 1207 2115 5428 9688 1871
7252 3443 8704 5062 4481 9645 1605 1778 8319 3487
6369 9923 371 9785 4256 3540 8809 3460 5670 45
2897 4015 7040 6539 812 7631 8181 508 4139 3726
2401 4653 3099 982 4769 1670 5644 6666 8302 3895
8025 8580 41 7637 4836 8844 6273 6342 9462 3987
887 999 3212 183 3814 2704 1792 1116 3559 1133
7410 8952 3961 7270 8985 5138 2880 3040 9767 4072
37 8575 343 7498 5959 5771 9342 3947 6244 803
7657 9847 8255 6127 5716 9120 9084 7014 5885 3437
9102 3658 5329 1178 5668 6350 8841 1868 4723 8128
4081 7731 4340 2185 5522 9999 8001 4934 9956 5069
6200 7444 5067 893 3020 643 9218 2013 4498 933
9780 1687 5682 2940 5744 7389 6305 2655 9087 6801
5795 9998 2342 9620 47 1238 6770 952 5391 5426
9197 4005 2047 1025 7754 3735 9616 522 5891 424
8280 6363 1388 1160 6717 1057 3110 3160 2559 9451
6489 3064 9527 161 5576 1683 2330 2288 7711 2232
9570 8217 5430 8893 3417 1294 5022 7197 7141 12
5974 6281 3454 8609 7550 4669 6743 8037 4997 1843
5422 8363 826 6555 1189 7219 310 7303 9240 6703
8116 5127 5007 2728 4886 1942 3350 5913 8273 5709
6978 1757 4197 1609 4924 790 4287 5617 9111 7897
7768 5657 9358 8037 8180 9473 8978 2310 5975 9591
785 3515 437 4114 5698 5367 9962 7605 5314 4214
4700 6690 4097 6940 1039 2257 8695 6435 1906 8378
999 8285 9147 4117 3701 5493 886 2065 6006 8689
3125 4143 4510 5396 7723 979 7618 9710 3418 4360
6957 8482 5083 2344 7687 5607 5523 388 9553 3437
6044 4585 7405 3106 297 5127 8877 396 8625 1583
6175 6346 8436 4698 168 2491 5855 817 627 9780
8223 2615 7891 7286 235 3299 7697 2532 5010 561
9659 6305 3916 6351 1949 2988 77 1684 5965 1507
2949 1554 6875 9603 5131 7279 4843 6689 3080 2211
1353 6883 2911 1909 8311 415 3138 1577 4333 3645
5095 616 3374 1696 989 9914 9743 7083 7655 2329
3536 9248 4696 1986 5808 1281 3768 5398 2721 6176
161 8047 4956 8799 3610 6933 9140 1109 4101 3411
827 1091 713 6105 1809 729 6623 9536 2133 6330
4292 8686 3738 1379 7349 8585 8824 1955 4604 3176
2140 6058 3461 9996 7701 9191 2391 5231 7366 2960
2953 7507 4912 3701 881 7445 9819 573 8621 7654
179 5963 122 1084 9850 2719 7406 2182 3259 6369
7975 4580 9354 2343 6507 7729 3798 4444 1441 2384
9822 5625 5569 4653 7476 2385 6630 3001 1126 1130
3248 4289 7010 1712 2376 8458 296 5588 2696 8259
8274 7729 6041 2502 6436 8398 1508 9703 5860 2742
3218 8901 1812 668 6854 455 4414 8161 6847 5141
2505 170 9937 6872 4522 2912 6786 3936 8420 1006
6946 104 3501 2235 7775 2422 1262 5528 9232 8630
8091 8743 9734 425 3784 6269 6256 1902 2632 4362
2342 8628 6107 7527 1399 3068 7037 5397 8773 506
4562 6119 8300 5245 4153 6264 7940 523 571 5213
8846 9878 520 7683 5886 812 8282 2203 5814 7479
4567 560 9544 8501 2922 8058 689 8781 1692 341
4292 8133 7126 7464 1036 3755 2727 3422 5568 9166
7563 4139 6945 4814 4031 3534 7734 30 9013 8118
2912 387 2233 1075 8996 4664 5039 4893 3588 9995
553 2729 2276 3028 2932 5640 7788 1753 2695 3353
9403 1062 4803 8920 3910 9783 9360 8414 6939 844
7615 3733 5161 164 208 7736 6261 9236 7964 6198
1560 8101 4484 9640 6356 948 7257 1569 5484 1421
9623 4906 748 8940 6627 6077 9784 1863 9732 2005
2251 5239 3451 3666 4189 1180 9722 2903 1724 9946
7335 9128 3482 2012 4145 7092 5852 3107 7537 7131
9997 8995 4648 9535 9531 4328 9707 4802 3360 5621
4532 1856 8730 4334 2640 9181 251 7750 9468 7880
8680 4550 2179 780 6459 6368 6505 9013 3781 5555
9600 4654 95 5183 8323 8593 4335 8258 8070 8225
8459 4070 7638 1564 7844 689 1832 97 1736 2305
8896 9742 4362 8051 498 6744 8210 5680 6158 1038
8743 5236 6434 1487 7351 188 2958 9872 7205 7983
2108 1761 8096 4770 9507 1648 2027 8087 7674 3356
4383 2891 6451 5874 6494 1073 8815 2102 2728 8717
3071 1667 7119 4179 1247 2802 243 7868 4740 676
9776 3810 9346 3953 5719 4298 9379 8028 7942 7859
115 884 7553 5349 6518 3803 8761 7763 3508 9763
4404 8015 7888 7728 4789 9286 4621 6443 2617 6967
3017 1142 9529 4081 2467 9451 1253 5755 4402 8000
4898 3893 8166 8904 8954 2150 6593 6964 3471 9366
7088 955 3583 8813 2266 9377 5022 7401 8966 2911
5514 2020 9601 370 9111 4609 4423 8215 8576 8423
5572 9795 3110 6041 5530 4950 1289 3382 6135 8786
458 4186 1419 6598 5040 5905 9706 4161 5055 3880
6464 9513 2711 1628 7484 2205 8647 1367 8549 5534
7776 6407 1317 882 9006 3870 5069 1776 3099 3388
7481 7842 6969 9596 127 5800 7520 9808 7594 8624
7276 5218 6213 7033 7836 5159 3150 143 9435 5531
9744 1262 690 433 6065 6314 4223 9623 8770 7149
8619 7553 2102 479 8675 7416 6226 5636 2969 7819
8512 4014 3064 2067 4196 4327 6295 717 9717 2616
562 9947 2097 8027 479 8566 120 2541 7544 2160
1101 6506 6318 2291 5147 1678 8108 6405 8130 8591
8500 9658 5311 4127 179 7409 4781 8097 6591 3051
8177 7753 8775 2300 8633 9983 753 3767 1214 3711
2602 2330 4406 2385 6563 7737 2736 9001 4562 3100
6218 3207 9704 6124 4591 7135 7794 6626 2288 5818
6382 3415 5111 9308 9167 7688 4920 5187 7017 7288
7031 4678 3712 1920 3397 2072 3521 4232 3428 4558
362 7436 6803 1234 3038 9246 9303 8673 369 4659
1437 2307 2323 4387 7785 2249 8525 237 6397 6245
3131 3390 4786 4788 158 9962 2514 338 3651 5096
6457 5609 6232 9063 8465 6818 4851 362 2127 4784
5475 8679 572 4639 3653 6925 2270 5255 358 51
7266 2445 6300 2419 305 9271 4855 8399 3077 7175
7822 3167 7161 5933 1793 8827 4003 8992 6050 1158
2972 829 8579 5165 3701 8333 4211 5840 111 5533
397 7375 3997 5729 4022 6000 934 631 5049 3592
614 3681 550 4236 1050 8787 9708 4537 8567 5147
8040 2402 9848 7266 5498 6655 5376 6614 5246 4605
5678 6238 7602 4011 4700 8495 3914 4204 4023 8990
5851 9133 4499 4962 8678 3280 5922 5249 1954 5592
3981 3097 3373 3607 4363 6315 1111 6829 7146 2449
3359 8558 145 3259 4010 1974 8487 4988 4511 6480
7498 4340 4571 6635 5667 9369 1339 3814 1783 2795
9498 3569 1297 5420 2312 8831 956 7909 8792 3686
8109 1303 9193 7704 5629 9827 7213 595 5158 1089
4157 5422 6728 3730 2418 1783 3422 7558 580 2725
727 727 9523 7252 5747 8018 6642 5304 9675 1384
5136 9633 2542 8617 828 506 4785 5311 1830 2719
6831 8417 9177 9652 726 6959 2707 4559 8951 1729
1150 7675 1044 1104 1842 9680 9833 289 6046 8563
3667 5432 9961 4412 7390 7369 8919 7406 3009 252
2565 5604 3776 460 1243 7530 6634 4664 7360 8756
8999 5409 9148 9550 6585 7510 9679 7514 142 4910
6881 2619 1668 7156 7689 8610 6255 2687 955 8503
5750 9555 6023 4236 8779 9158 694 9242 101 7119
1747 700 2772 2925 2587 6295 8508 5779 3331 5734
8978 7980 8266 3320 4441 9900 7691 4224 9199 1333
8921 2399 7464 3988 9241 1969 5301 3502 8354 4810
2879 7214 2257 6190 7896 351 1823 1203 3449 1154
9984 4984 4658 3063 6838 7922 5454 3583 6236 9930
2281 3010 3164 9159 1441 2497 115 8451 4070 3374
7376 1309 5420 1918 1772 9989 2902 9347 3417 7122
5360 144 6830 7539 8843 1755 5564 6256 9999 8559
8111 9245 5116 4898 4519 3286 1763 7884 4738 1950
2918 8004 3191 5660 6756 186 253 8983 7758 7408
8469 2815 4721 6143 6744 9168 399 6545 8947 5109
8716 2586 177 8492 4010 6494 3009 4688 8212 3164
8318 1388 3327 5395 4172 1314 3649 7955 9591 7043
1799 4384 5259 6081 9472 6597 7133 5158 2444 5281
6259 7930 213 8265 2660 4613 2946 4277 4685 3904
8194 8829 696 4129 8799 1569 5834 9985 293 2254
4361 191 3517 8629 1510 2406 4311 119 4793 8977
7615 6527 3589 9194 5509 3828 9504 7101 9364 1374
5228 2621 5123 543 9224 4771 6100 7799 478 2420
5470 7218 9620 4940 9539 3814 2341 5828 5491 3827
798 4751 4813 9272 2704 2809 485 9901 9476 9925
2392 7111 8908 1167 2948 8777 1831 9701 9828 6009
4005 3063 4111 8102 3341 9275 6003 7853 1052 3736
4298 9771 9093 2516 1454 690 179 4875 299 8499
5216 8091 4742 5896 3212 7314 5599 3432 4932 3280
6520 5853 7765 7314 6536 4929 611 1846 5451 2096
3337 1518 7019 5207 3978 6482 9225 3626 9603 1033
4816 341 8709 3163 2730 7369 4147 8579 7653 3850
2049 2571 9224 1068 9237 8947 6614 6064 7541 8346
6591 1064 4577 2876 328 5274 5542 3423 1180 2710
8533 6230 5092 2933 7438 4364 800 498 9714 2411
8775 3385 9398 5644 3412 4814 238 8367 7666 7057
2875 8850 9214 8803 2196 7220 4378 5975 8356 1271
2143 536 1372 2727 5641 1453 1935 7821 2012 7677
1464 6419 2075 1050 8670 7171 6932 4426 725 3936
1427 1414 3358 8094 170 3350 3621 6853 3939 6038
5337 6356 3354 6297 3218 954 4647 2051 422 1535
9949 1760 9469 1922 421 4127 415 289 8240 4378
1381 7320 8896 5427 235 3855 1040 6947 830 6607
4572 9615 9176 6616 4021 4561 7526 641 3142 2533
6340 6432 2107 3763 9686 8916 1038 5130 4878 7119
6464 8644 3013 9712 5523 7013 5511 9664 4820 5576
5939 3437 6299 6682 6382 4898 4312 3336 6551 2272
1185 308 6501 42 877 9472 9753 7699 7931 3552
1950 7263 9852 6015 658 3567 781 6006 4303 9165
6647 3712 2644 88 473 94 1778 1107 8475 2571
7054 1543 6968 4255 3386 3845 1646 4382 6837 3872
4260 87 4188 1190 4652 4521 4154 9997 8105 6544
3994 7809 4889 1645 7657 8777 818 4581 3764 1982
938 130 7398 2118 506 1174 9214 4201 2304 1700
7010 7130 2472 9463 8445 5977 8217 740 2044 8179
3719 6662 5023 9004 8694 3479 4537 7466 6515 6795
2563 5545 9984 1307 552 3233 9346 6505 8917 8374
6129 8155 7385 71 9799 685 6524 5390 4089 8310
3800 7272 6192 9629 6148 4831 2373 7365 899 801
338 6937 8577 7947 3939 4839 6235 8838 6442 2944
1771 5078 1044 1947 979 7206 6113 763 1822 3224
8533 5378 3455 76 4108 2369 5202 6157 7939 3823
7963 1958 1065 1154 5703 5348 6827 4208 8504 8993
5496 188 5380 7121 6296 820 2901 3816 8414 1493
6974 5756 4534 7083 3263 4735 2899 22 1003 6544
3190 2447 5758 8259 2026 9488 5271 6972 3152 6231
74 4699 7870 6540 6218 1403 1345 5227 5338 3881
6586 710 3408 1602 9790 4277 2075 8114 899 3899
2385 431 9235 7534 6556 7426 3445 3161 2569 3835
7030 7850 6003 1841 1750 2240 272 4854 6424 6335
3090 300 3343 6413 4753 9869 9037 836 2596 9244
9202 392 2871 4818 4742 9137 3965 8768 2339 561
4071 6184 8483 1149 6618 2598 5558 9848 4802 2902
9963 1021 1958 4206 2920 1174 7432 7434 2256 895
1222 1886 2953 3563 3054 2942 4277 7022 3546 8080
8567 1268 7818 3083 6463 4553 2008 8638 7416 132
7291 3533 8672 6055 6714 8885 5823 5581 3042 5331
1536 2126 7778 6985 356 6502 9014 3222 5562 8399
1194 9385 3191 7832 9568 6988 7113 1898 9828 4139
6909 8603 8495 5880 3423 6717 8372 2121 7093 8470
6742 6019 237 2751 4064 7271 7390 4722 3673 9306
1179 9074 1141 4253 2540 8775 2908 5404 589 1443
9129 8456 5167 9225 4068 6126 5216 2577 3637 9411
7949 8044 523 4628 5470 1653 2439 7418 30 1178
8096 1595 9558 903 7372 7337 9208 9367 9741 1866
8042 2380 488 3826 3420 4450 7807 3804 9227 3449
2832 7322 3567 1547 1814 6472 8197 9782 5803 8755
8026 8410 7533 7124 4099 4136 783 7995 5307 4322
9485 8266 2824 7979 8144 3952 7894 9527 8507 1946
9400 3551 3982 5225 8555 8301 1946 5841 4876 7292
4549 3693 5636 1878 2087 6433 710 5921 4900 9786
8331 290 9968 8527 1074 6825 1881 900 5129 1168
1518 3632 224 2049 8550 4111 3179 1385 4004 5576
3769 6432 7740 3216 1142 3774 362 2221 5358 7006
9686 7129 9906 8461 3590 3985 7956 6002 6004 6340
1193 5834 3056 4313 9639 5567 4926 5728 599 3145
576 4331 7238 6521 568 4541 8498 3031 2208 7159
4805 1845 1870 7026 1438 213 2167 7201 2931 2674
6416 4072 7694 2239 6474 310 4044 2951 4878 9236
5768 9984 8565 8480 3561 3262 9886 4847 5935 3131
4608 4789 3530 3216 7957 1604 638 3619 6122 5050
1567 9276 3598 4970 5987 2331 6020 2501 1342 7404
2909 2786 8551 9494 2460 9360 7960 4313 3954 7988
5451 4200 2101 4142 1368 1734 3398 2529 6164 6768
696 2170 6745 7158 6301 5320 8624 5313 3003 5805
1649 2215 1527 4525 6730 2593 3892 3410 9994 7134
2353 4607 3576 5141 3765 4572 9673 1168 1603 6124
9449 5779 2360 3220 7779 6790 874 9131 6076 5174
8006 4661 1453 2459 3065 7855 4054 6026 4718 1890
7417 8993 1553 9031 415 2299 7144 3940 5619 8452
2456 3746 1446 9932 1010 2077 7084 6933 2880 422
1710 5152 6782 3291 5807 1656 7194 2083 4657 7609
7610 3437 9371 1606 4303 3670 2964 6432 6681 3071
9985 1948 9422 4831 5633 7157 8417 8348 934 3386
292 9438 6272 3030 6378 746 556 5142 4994 3190
321 5451 4503 7174 8826 9882 618 789 2465 4318
1910 1945 8458 1777 121 7146 3572 3185 3798 7799
9263 8719 5543 7185 9928 9727 3035 15 4012 6284
9627 6418 2136 3640 1101 287 4108 2601 7305 3213
5002 140 3640 6443 9182 5397 1644 1684 2283 7460
8368 2668 5321 6902 7623 6404 4591 1592 196 9336
690 4803 5206 3576 8444 1144 2469 1703 3195 1033
3617 7014 5650 7890 3958 6493 8384 2278 1164 5993
7854 8826 9300 9986 3382 4469 1255 7654 3022 8013
5621 4950 2206 1004 6537 3455 2364 4322 9479 3233
877 2216 1593 08 2171 2664 3239 7608 04 230
8648 3028 6282 8522 9638 5510 3003 6870 5760 893
4779 1045 7873 5020 4248 9029 145 9179 7274 6338
3430 5727 5093 4493 9986 4154 4711 838 344 1393
1614 7910 9551 2266 2309 421 2187 5836 1461 3765
5989 7009 4769 6966 7854 3974 9608 1522 1621 1404
3691 5764 6359 5029 6610 7137 2294 5589 683 1771
9531 4282 5886 7747 6031 4743 7619 745 8481 9481
5742 2372 9857 9975 6690 1454 2916 4752 9878 7399
5454 5613 4732 7091 4699 2436 7220 9546 9976 7888
5797 4612 6651 8192 4828 1557 6857 5809 2343 580
2420 9908 447 7358 6987 2078 7268 9898 6352 5475
8374 2956 2031 561 6311 6656 8349 6699 5570 9750
9053 7493 3789 2355 1728 7962 7400 4652 2167 4123
4213 8612 5997 7509 6976 2846 9268 1256 7557 8658
8405 5354 3236 7697 8637 1887 8654 4340 8297 9265
2596 8557 916 2470 6565 546 7265 4432 3075 1576
5246 8018 4617 8229 3945 2235 1223 3079 7644 7278
9493 6830 1873 7566 8211 6946 5911 4480 7665 1452
8150 4002 4990 5434 5250 7815 3803 5647 9558 4569
8939 6872 82 3677 3585 4376 7669 6299 9902 8667
2830 6439 460 42 716 4221 7703 7877 7554 6924
1556 9195 8930 7863 4148 6507 7846 6906 5879 1593
2696 1506 1177 8333 7042 9344 9202 7908 2236 929
3261 9909 1561 7937 7834 1027 8209 7633 7723 258
3516 6629 412 4960 8323 2623 3470 9186 4327 883
2299 6256 8270 5863 7974 2833 4337 8225 2942 2587
1574 4313 5917 6931 3806 8355 1585 7276 5778 7494
8258 7654 4674 636 1142 5518 7620 7962 5445 9924
6669 1764 5378 2000 5905 4085 24 2058 1740 280
3721 4747 9253 7458 2052 5705 1932 8870 4870 39
6212 6706 6290 2362 5696 2128 6556 1830 5786 541
3171 3287 8943 4299 7802 4672 4072 1924 8247 7082
642 1138 5088 7221 2926 1119 5413 3274 9332 1932
5589 1010 9962 8449 3925 5371 9416 4345 5829 9184
9535 9314 5771 4216 4507 266 1889 4247 4021 1929
2369 1150 9773 4907 2419 4671 2365 4289 7654 3490
7093 5726 2122 3999 2903 7915 9790 4427 3231 8848
4273 2364 3019 1982 5748 8022 3646 2320 123 3871
6883 81 1236 7528 3264 4969 2026 6087 8359 2419
9130 1419 2352 4621 1255 6647 8264 1414 9888 240
3648 8284 960 2026 6213 5184 486 3928 6878 1594
5664 546 7287 6222 4815 6222 8560 9046 61 8610
6507 6971 3807 1897 8708 7209 4434 8617 8512 4184
1593 7213 8753 4901 4374 1029 6454 3600 9941 5256
1096 509 4936 8627 8640 2121 6856 935 8060 133
2992 816 6662 595 3113 9663 3151 4599 8875 4815
2520 2953 6308 8585 2966 1148 5209 2925 2436 170
1735 3294 761 351 1733 8348 5733 8156 5913 772
4267 7390 8346 7677 5825 5324 9015 1114 3448 8183
8386 1631 648 7475 6999 7131 6932 608 9920 1766
1370 5321 5610 4976 2275 6221 6065 9461 7007 5454
5283 8893 6214 5319 1314 5536 8290 1855 4104 4324
3144 6424 1342 3447 1369 3796 4656 5533 9879 7839
3211 6729 9405 6690 2551 6120 9531 6453 401 3162
3445 4108 9462 3386 8756 8566 9570 7567 1222 3708
3920 2273 9398 7431 7951 5016 6418 7549 2465 2569
5930 9424 5681 9757 5224 440 3976 2404 1013 8497
8683 904 1920 4902 344 7733 1726 3790 8369 9687
5119 8610 3880 9755 7003 6838 2205 2782 7988 7565
6628 8817 8646 4883 587 5666 6624 9772 2822 8746
5354 281 4988 2322 5975 4357 8929 8084 8901 5308
1735 4430 8678 3842 1816 5881 2318 9818 1036 4049
9550 9899 9919 9457 1470 5493 5009 452 6191 2158
4679 2739 8684 9754 9205 1324 3550 8560 5420 1663
8963 5259 1228 8486 291 7436 2424 7217 2264 8399
340 5372 7407 5587 8240 6563 1639 699 2311 4468
1661 7314 2140 6186 7940 9114 5838 4370 8746 3055
9745 1936 7025 8685 9784 5644 9999 8999 1920 8583
4721 4192 3283 4996 4636 9309 5207 7923 4604 7793
5449 1358 8257 1131 4475 5469 329 4961 1953 7600
5738 9979 1880 6269 6502 2308 6477 6788 5901 780
5176 8568 1600 8822 719 9943 8360 2316 3179 1400
5898 8568 8017 6446 1139 434 7602 4434 8739 8968
6539 2725 9393 8219 5176 1616 5519 3441 8491 6797
4303 195 4552 907 4958 3543 7078 2887 8060 4621
5366 1931 9191 1006 1008 6257 700 6642 178 2658
7733 8330 7752 8058 332 6231 453 6847 6265 7981
8711 1033 8222 1683 7272 7370 558 8064 8646 7554
9520 3606 6226 6128 1584 3654 3885 1569 2499 8965
3169 7983 2855 8557 1505 5704 4186 1624 6103 4189
4417 7360 3089 2170 126 8459 6208 1107 283 5308
8716 6450 7101 4616 2563 9187 7768 6915 8638 708
3167 6649 7168 429 7380 1240 4716 2052 148 8004
502 3341 2458 1601 7366 6445 2748 1439 9497 3081
5038 7373 3630 3887 7450 9706 7817 1445 5592 7295
3116 3577 3011 4482 4579 7439 5796 4284 2130 121
7954 6170 8482 4985 2270 6137 1797 6410 9940 351
5657 896 6054 6658 1295 7489 7376 2580 6940 2494
6937 4643 8975 2864 7136 4314 3805 4415 5214 4007
4891 3778 5933 5363 520 2683 3934 16 4510 457
1903 6278 4794 3296 5284 7196 2078 6988 3046 9615
4028 1046 9074 2898 9519 8151 2417 985 1622 185
3941 2689 191 1562 1255 5915 8525 6194 550 2947
3767 4242 9820 5537 6750 2321 1231 653 1012 5516
8309 6718 1906 422 9548 1276 8708 9747 2456 2769
4678 8838 4746 8115 5434 7318 8409 1725 9187 8970
9036 9319 6523 1340 428 6495 6261 2196 2789 7343
6294 9577 7572 7307 4570 812 8062 1952 6486 3933
5634 9502 9450 1186 7340 3524 3672 8410 2043 53
1763 4047 9507 1068 9835 4636 9842 9894 7771 552
2841 4775 9750 3894 507 9935 1824 5450 9102 3695
2444 451 2682 5648 9449 4088 4656 5491 6524 4526
9499 2284 1637 8229 5188 8029 335 6390 2658 4188
6220 9453 2624 1132 657 4120 1341 4300 3688 7919
1283 5911 4992 629 6917 5572 7789 9138 681 4869
5404 409 2861 2169 3745 8305 759 6085 5536 6414
7521 7219 5429 6403 1447 5219 2957 8119 6173 2385
5498 6404 1049 4491 7785 5567 1002 8731 115 9242
833 8340 7889 949 5356 2218 2065 4298 826 5764
1920 4489 8061 9373 8802 766 8203 1557 2229 6633
7684 6005 8178 2231 4862 6236 9154 2560 8970 1676
2815 6567 4651 9282 1188 952 3650 8150 4535 7426
4462 4822 6345 1759 4913 6392 7503 3549 9410 1558
5171 2313 8883 2126 4884 2038 3709 6070 8953 136
9204 2881 6128 3489 4636 9688 1725 2517 939 7670
7551 5301 3597 8422 3283 6624 3021 4748 4209 355
84 8634 2612 6375 4937 8609 356 6357 5423 309
1776 6653 4320 5436 1652 9792 4221 7587 4392 2938
6611 4994 9580 2583 9856 6327 2874 291 2266 6749
7208 9368 7526 5282 4910 4391 8921 05 6326 9396
9968 8846 7059 4792 2395 1292 1115 6813 8561 4487
8647 8769 599 1153 246 5581 6370 8118 6438 1824
2207 7203 2174 8996 4978 7005 4258 1080 5052 7210
6627 7220 3831 7900 506 95 9573 9966 9799 1615
7439 2795 9408 6717 6934 6428 6278 2142 4432 2786
855 8687 8294 6603 3261 705 2069 4513 1614 9418
6185 5432 9129 8196 4306 5129 8620 4929 987 4978
3303 814 8160 1928 3180 9291 8037 6667 9755 8594
3379 8233 1157 215 4898 5056 4788 6385 1218 7299
2101 2345 5506 8233 5970 5530 1282 6296 1583 9180
205 6431 8499 5250 2468 746 291 7679 5531 7141
7815 8641 558 457 1541 8047 2975 2243 7517 545
7986 6658 9441 8380 4714 99 3844 5184 865 182
6960 178 5496 430 7907 1917 3766 6268 2013 7369
6400 9476 8276 2397 4842 2291 1789 2283 1754 5796
9978 9192 560 870 6569 4261 8262 788 9465 2619
8152 3258 4861 7426 6043 5203 126 8151 3614 6243
5885 2037 2190 1187 484 831 9898 8646 2500 3339
5899 2813 5032 1058 4849 4726 2199 3071 9239 4284
7703 8977 5134 982 7137 1732 4316 7659 8738 1645
3907 9117 5061 5155 2712 6763 6875 5601 1988 2616
4731 5637 8041 5505 887 149 6232 8891 3035 3022
6300 4317 5816 3812 6228 7680 3150 9657 4132 8595
1719 9974 4595 547 8526 166 9878 2692 712 9539
1315 9568 6880 1363 8963 5597 6323 1446 9825 5043
1707 4206 8041 5627 9747 175 8023 829 1890 7631
5867 3549 7703 8796 7803 8428 8365 1807 8335 5423
3741 7740 1091 3543 9259 5048 9218 9696 6756 9049
2891 6324 3791 1474 5119 2348 1712 1792 7101 7556
6258 6584 1432 6162 4332 2167 1154 2502 8068 288
4796 2794 3971 8634 9498 6661 1471 3637 7317 1600
2866 4842 4362 6297 8410 6010 3954 1452 9753 2343
1409 9154 3464 7205 3195 375 3620 8783 6508 535
7144 9729 532 3274 6318 9492 7085 5506 4244 3996
8377 9848 2752 1022 8632 5185 1060 3286 1629 3115
528 3249 2947 1885 1755 2672 9165 7894 495 3485
1396 5372 4105 5641 4208 4830 5401 1853 7135 107
67 2901 4195 4979 7142 1913 3928 5885 5322 1563
1308 3566 1955 2113 7895 5558 8605 95 8283 8419
2994 296 5882 5560 3560 2482 5175 8074 7094 9976
2026 6438 6018 7528 1787 7289 2093 9478 8321 2125
7626 3076 4564 3848 1720 5055 7350 8956 327 9647
4836 8827 9767 6392 1923 5860 5899 7374 2894 4129
20 6415 2305 3281 2170 8324 3192 5859 1861 3517
7179 4786 4573 4864 2100 8233 3991 8149 293 5057
191 2467 9289 6405 9976 9099 8573 2310 5044 2098
3319 5196 3013 583 3144 5818 2685 2986 317 877
3881 5066 8624 5683 3635 7730 2899 6716 104 343
7787 5391 5273 4214 3620 4358 35 1719 1235 7136
2353 5750 1165 7139 824 3265 2991 8940 6219 3318
8189 6111 897 9464 9483 7380 5840 8553 586 3526
1373 1275 1053 7549 5779 5869 7814 1725 2126 71
6314 6846 1724 2834 3545 2509 9485 5687 375 9441
8536 1324 2465 4982 9883 5935 9684 4496 1284 8344
7375 3601 8481 4624 3757 6512 6629 755 3174 3126
9069 4213 5490 7010 7067 6735 9170 5699 9387 3973
95 3068 9053 6016 460 8134 5037 8983 3820 8921
6798 6990 8975 7668 6584 2237 579 2831 120 2625
2419 4525 4476 8803 6388 1210 2320 2128 2743 5315
2612 3534 1404 1626 4160 213 9195 3235 7632 9529
7250 2426 5440 7040 4668 6343 6654 8492 8724 8150
4366 8440 8291 41 2583 7020 9888 6398 4550 7961
8593 4082 6326 1132 8363 2958 4198 9123 7308 8379
1066 6699 1735 7664 8839 7962 7505 9037 9451 963
2166 5831 962 487 4926 579 7451 3367 4009 8992
287 4334 6211 3724 3667 8042 7090 6378 20 9666
8320 7831 4516 3111 3650 7247 304 3272 9670 97
9771 6043 8568 8114 2786 580 2104 6787 8368 2814
1801 8334 6269 7059 7541 9617 8823 1082 7675 6828
3852 193 7946 3178 8937 1876 124 5259 7503 3650
690 9747 7226 9452 4155 2873 8191 5655 777 6944
4353 5831 6787 9700 5946 4444 3486 4167 914 2274
4407 1344 1869 4627 3265 8920 425 8730 3348 4411
8108 7391 798 9128 5132 2478 233 3630 5549 5992
9496 2355 1401 7995 5444 2296 7932 4046 2779 1485
1156 4029 2844 5644 4582 3036 1522 1578 5924 4926
8028 855 4975 6584 3746 1093 6744 8952 6254 6981
8784 7646 4925 8484 7288 8050 2211 4980 1377 8520
9241 5963 792 3023 7699 4026 6784 460 3544 8143
5586 5314 5713 8601 7620 4714 4613 4034 9418 7644
3065 8440 7649 8355 2273 5482 1454 5692 551 3471

values is sorted: false

[7][7, 13][7, 13, 14][7, 13, 14, 15][7, 13, 14, 15, 16][7, 13, 14, 15, 16, 20][7, 13, 14, 15, 16, 20, 22][7, 13, 14, 15, 16, 20, 22, 29][7, 13, 14, 15, 16, 20, 22, 29, 31][7, 13, 14, 15, 16, 20, 22, 29, 31, 34][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67, 68][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67, 68, 72][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67, 68, 72, 74][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67, 68, 72, 74, 79][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67, 68, 72, 74, 79, 60][7, 13, 14, 15, 16, 20, 22, 29, 31, 34, 36, 45, 46, 50, 52, 57, 58, 59, 61, 62, 66, 67, 69, 70, 73, 75, 77, 82, 83, 84, 85, 86, 91, 92, 93, 95, 96, 98, 20, 28, 29, 31, 55, 57, 60, 62, 67, 68, 72, 74, 79, 60, 61]

------------------------------------------------------------


The values array is:
00 02 04 05 07 08 09 12 13 14
15 16 17 18 20 22 23 24 26 28
30 33 34 35 36 37 38 39 41 42
43 45 47 48 49 51 53 56 58 59
61 62 63 64 65 67 71 73 74 76
77 78 81 82 84 87 88 89 93 94
95 97 99 100 101 102 104 105 107 109
111 112 115 116 117 118 119 120 121 122
123 124 125 126 127 128 129 130 132 133
134 136 136 139 139 140 142 143 144 145
145 145 146 147 148 148 149 149 149 149
154 154 156 158 161 161 164 166 166 168
168 170 170 170 173 175 176 177 177 178
178 178 178 179 179 179 179 181 181 182
182 183 183 185 185 186 188 188 191 191
191 193 194 195 196 196 198 198 199 201
202 203 204 205 207 208 208 210 212 213
213 213 215 216 218 220 222 223 224 226
226 227 230 232 232 233 235 235 237 237
237 237 238 238 239 240 240 243 243 246
246 247 248 248 248 251 251 252 253 257
258 260 261 261 261 262 264 265 266 270
271 272 273 274 278 279 279 280 281 283
284 285 286 286 286 287 287 287 288 289
289 289 290 290 291 291 291 291 292 293
293 294 296 296 297 298 299 300 300 304
304 305 308 309 310 310 315 317 321 322
322 324 326 327 328 329 329 330 332 333
333 335 336 336 336 338 338 338 340 341
341 343 343 343 343 343 344 344 350 351
351 351 351 355 355 355 356 356 356 357
357 358 362 362 362 362 364 364 365 367
368 369 369 370 370 371 371 374 374 374
375 375 375 375 375 377 378 380 381 381
383 386 387 387 388 388 391 391 391 392
393 393 393 395 395 396 397 397 399 401
401 404 408 409 412 412 412 413 413 414
414 415 415 415 415 417 421 421 422 422
422 422 422 424 424 424 425 425 427 428
429 429 430 430 431 431 433 434 434 435
436 437 440 443 443 447 450 451 452 453
455 455 457 457 458 458 460 460 460 460
463 463 463 466 470 471 473 477 477 478
479 479 481 482 484 485 486 487 487 488
488 488 490 491 491 492 494 495 497 498
498 501 501 502 502 504 506 506 506 506
506 506 507 508 509 510 512 513 515 520
520 522 523 523 525 528 532 533 533 533
535 535 536 536 537 537 539 539 541 542
542 543 545 546 546 546 547 548 549 550
550 550 551 552 552 553 554 556 558 558
559 560 560 561 561 561 562 567 568 569
571 571 572 572 573 573 573 573 574 574
576 576 579 579 579 580 580 580 583 586
587 587 587 589 593 595 595 599 599 599
601 601 606 608 608 610 611 611 613 614
616 616 617 618 618 627 627 629 630 630
631 632 633 636 636 638 640 641 642 642
642 643 645 646 647 648 648 648 651 652
652 653 653 655 657 658 659 660 661 661
662 663 664 668 668 672 674 676 676 677
677 681 682 683 685 687 689 689 690 690
690 690 690 690 693 694 696 696 697 698
699 699 700 700 700 700 701 701 703 703
704 704 705 707 707 708 708 709 710 710
711 712 713 714 714 716 717 718 719 721
722 725 725 726 726 727 727 728 729 732
736 736 738 740 741 742 742 745 745 746
746 748 748 748 753 754 755 755 757 759
760 760 761 763 763 764 765 766 767 767
769 770 771 772 776 777 777 778 780 780
780 781 781 782 783 783 785 785 786 788
789 789 790 790 792 795 798 798 799 800
801 803 803 805 807 808 808 809 810 810
810 812 812 812 813 814 814 814 814 816
817 817 818 818 820 820 820 820 824 825
826 826 827 828 828 828 829 829 829 830
830 830 831 831 831 832 833 834 835 835
836 838 839 841 843 843 844 849 850 851
852 853 855 855 855 855 855 857 858 858
858 859 860 862 863 864 865 866 866 870
874 876 877 877 877 877 879 879 879 880
881 881 882 883 883 884 884 884 885 886
886 887 887 893 893 895 896 896 896 897
898 899 899 900 903 904 906 907 911 911
912 914 914 915 916 916 917 918 919 920
929 933 933 934 934 934 935 938 939 939
945 945 946 946 947 948 948 949 951 951
952 952 954 954 955 955 956 959 960 961
962 963 966 967 976 976 977 978 979 979
979 980 981 982 982 982 983 985 986 987
989 990 992 992 993 994 996 998 999 999
1002 1003 1003 1004 1006 1006 1007 1008 1008 1009
1010 1010 1010 1012 1012 1013 1015 1015 1018 1019
1020 1021 1022 1024 1025 1025 1027 1027 1029 1033
1033 1033 1035 1036 1036 1037 1038 1038 1039 1040
1040 1041 1042 1043 1044 1044 1044 1045 1046 1046
1047 1049 1049 1050 1050 1052 1053 1054 1057 1057
1058 1060 1061 1061 1061 1062 1064 1065 1066 1067
1068 1068 1068 1069 1073 1074 1074 1075 1077 1077
1079 1080 1082 1082 1083 1083 1084 1084 1084 1085
1085 1088 1089 1089 1090 1091 1091 1091 1091 1092
1092 1093 1093 1095 1096 1100 1101 1101 1102 1104
1105 1107 1107 1108 1109 1109 1111 1111 1114 1114
1114 1115 1116 1117 1119 1120 1124 1125 1125 1126
1126 1128 1129 1130 1131 1131 1132 1132 1133 1136
1138 1139 1140 1140 1141 1142 1142 1142 1144 1146
1148 1149 1149 1150 1150 1151 1153 1154 1154 1154
1154 1156 1156 1156 1157 1157 1158 1158 1160 1162
1163 1164 1165 1165 1167 1167 1168 1168 1172 1174
1174 1175 1175 1176 1177 1177 1177 1177 1177 1178
1178 1179 1180 1180 1184 1185 1185 1185 1186 1186
1187 1188 1189 1189 1190 1190 1191 1193 1194 1194
1194 1198 1203 1203 1205 1207 1210 1211 1214 1215
1216 1216 1218 1218 1218 1222 1222 1223 1224 1228
1228 1229 1231 1231 1232 1234 1235 1236 1236 1236
1238 1238 1240 1241 1242 1243 1244 1247 1250 1251
1252 1252 1252 1253 1254 1255 1255 1255 1256 1256
1256 1259 1260 1262 1262 1264 1265 1266 1268 1270
1270 1271 1271 1271 1271 1272 1272 1273 1274 1274
1275 1276 1277 1277 1278 1281 1281 1281 1282 1283
1284 1289 1290 1292 1293 1293 1294 1295 1296 1296
1297 1297 1300 1303 1303 1303 1307 1307 1307 1308
1309 1309 1311 1311 1312 1314 1314 1314 1315 1317
1317 1318 1324 1324 1327 1333 1338 1339 1340 1340
1341 1341 1341 1342 1342 1342 1344 1344 1345 1345
1345 1348 1349 1351 1353 1355 1358 1360 1363 1363
1365 1365 1367 1368 1368 1369 1369 1370 1372 1372
1373 1373 1373 1374 1375 1375 1376 1377 1379 1381
1384 1385 1388 1388 1388 1391 1391 1391 1393 1393
1393 1394 1394 1395 1396 1397 1398 1398 1399 1400
1400 1400 1401 1403 1403 1404 1404 1404 1405 1405
1409 1410 1411 1412 1413 1414 1414 1414 1417 1418
1419 1419 1419 1419 1421 1422 1422 1422 1423 1427
1429 1430 1431 1432 1433 1433 1437 1438 1438 1439
1439 1440 1441 1441 1441 1441 1443 1443 1445 1446
1446 1447 1448 1450 1452 1452 1453 1453 1453 1454
1454 1454 1455 1459 1461 1464 1469 1470 1471 1474
1474 1475 1475 1482 1483 1485 1486 1486 1487 1487
1488 1489 1492 1493 1496 1504 1505 1506 1507 1507
1508 1510 1513 1514 1515 1516 1518 1518 1520 1521
1522 1522 1522 1524 1525 1527 1532 1532 1535 1536
1538 1539 1540 1540 1541 1541 1543 1545 1547 1550
1552 1553 1553 1554 1556 1557 1557 1557 1558 1559
1560 1561 1561 1561 1562 1563 1563 1563 1564 1564
1565 1567 1568 1569 1569 1569 1570 1573 1574 1576
1576 1577 1577 1577 1578 1580 1580 1583 1583 1583
1584 1584 1585 1586 1588 1589 1589 1592 1592 1593
1593 1593 1593 1594 1594 1595 1600 1600 1601 1601
1602 1602 1603 1603 1604 1604 1605 1605 1605 1606
1606 1606 1607 1608 1609 1609 1609 1610 1611 1612
1614 1614 1615 1615 1616 1618 1619 1621 1621 1621
1621 1622 1622 1622 1624 1624 1625 1626 1626 1627
1628 1629 1629 1629 1629 1630 1631 1632 1634 1635
1635 1637 1638 1639 1639 1639 1640 1641 1642 1644
1645 1645 1645 1646 1646 1647 1648 1648 1648 1649
1649 1651 1651 1652 1652 1653 1654 1656 1656 1657
1658 1658 1659 1660 1661 1662 1663 1663 1664 1667
1667 1668 1668 1669 1670 1670 1674 1676 1676 1676
1678 1678 1680 1680 1682 1683 1683 1684 1684 1686
1687 1687 1690 1692 1692 1692 1695 1696 1697 1698
1700 1701 1703 1703 1704 1705 1706 1706 1707 1708
1709 1710 1712 1712 1715 1717 1718 1719 1719 1719
1720 1721 1723 1723 1724 1724 1724 1725 1725 1725
1726 1728 1729 1731 1732 1732 1733 1734 1735 1735
1735 1736 1736 1737 1737 1740 1740 1741 1741 1743
1743 1747 1747 1750 1750 1753 1753 1754 1755 1755
1757 1758 1758 1759 1760 1760 1761 1762 1763 1763
1763 1764 1764 1764 1765 1766 1767 1767 1768 1771
1771 1771 1771 1772 1772 1772 1773 1774 1774 1776
1776 1776 1776 1777 1778 1778 1779 1782 1782 1783
1783 1783 1784 1784 1785 1787 1789 1790 1791 1792
1792 1793 1793 1797 1798 1799 1801 1807 1809 1812
1813 1814 1814 1814 1814 1814 1815 1816 1818 1818
1818 1818 1819 1821 1821 1822 1822 1823 1824 1824
1824 1827 1828 1828 1829 1830 1830 1831 1831 1832
1832 1833 1835 1836 1837 1838 1838 1839 1839 1839
1839 1841 1842 1842 1843 1843 1845 1845 1846 1846
1847 1849 1849 1853 1855 1856 1856 1858 1858 1859
1861 1863 1863 1866 1868 1868 1869 1870 1871 1871
1871 1872 1873 1874 1876 1876 1878 1878 1878 1880
1880 1881 1881 1883 1884 1885 1886 1887 1887 1888
1889 1890 1890 1890 1891 1894 1895 1896 1897 1898
1899 1900 1901 1902 1902 1903 1904 1905 1905 1905
1906 1906 1906 1907 1908 1909 1910 1910 1913 1916
1917 1918 1918 1920 1920 1920 1920 1922 1923 1924
1926 1926 1927 1927 1927 1928 1928 1928 1929 1931
1932 1932 1935 1935 1936 1936 1937 1939 1940 1941
1942 1944 1945 1945 1946 1946 1946 1947 1947 1948
1949 1950 1950 1950 1950 1952 1952 1953 1954 1955
1955 1958 1958 1960 1963 1965 1965 1966 1967 1967
1967 1968 1969 1969 1969 1971 1971 1971 1974 1975
1975 1978 1979 1979 1979 1980 1981 1982 1982 1982
1983 1984 1986 1987 1987 1988 1989 1989 1990 1990
1992 1993 1994 1994 1995 1996 1996 1997 1997 2000
2005 2005 2005 2006 2008 2011 2012 2012 2013 2013
2016 2019 2019 2020 2026 2026 2026 2026 2026 2027
2027 2029 2030 2031 2032 2032 2032 2033 2034 2036
2037 2038 2038 2042 2043 2044 2047 2048 2049 2049
2049 2051 2052 2052 2054 2058 2058 2059 2061 2061
2062 2064 2065 2065 2065 2066 2067 2068 2069 2070
2071 2071 2072 2073 2073 2075 2075 2076 2077 2077
2078 2078 2079 2081 2082 2083 2083 2084 2084 2084
2085 2087 2089 2091 2092 2092 2093 2093 2096 2096
2097 2098 2098 2099 2099 2100 2101 2101 2102 2102
2102 2103 2104 2107 2108 2108 2109 2111 2113 2115



values is sorted: true

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote