leetcode sort list
来源:互联网 发布:新加坡域名后缀 编辑:程序博客网 时间:2024/05/21 08:58
链表排序。要求O(nlogn), 固定空间复杂度。
首先用快排的思想试试,结果超时了:
// Problems.cpp : Defines the entry point for the console application.//#include <iostream>#include <string>#include <vector>#include <unordered_map>#using <System.dll>using namespace System;using namespace System::Diagnostics;using namespace std;struct ListNode { int val; ListNode *next; ListNode(int x) : val(x), next(NULL) {} };ListNode ** listqsort(ListNode ** l){ListNode *start;ListNode *end;ListNode *finish;ListNode *tmp;start = l[0]->next;end = l[0]->next;finish = l[1];if ( start->next == finish){return l;}ListNode *middle, *p;middle = l[0]->next;p = start->next;//nodes before middle are less than middle, nodes behind are equal or largerwhile(p->next != finish){tmp = p->next;if (p->val < middle->val){p->next = start;start = p;}else{end->next = p;end = p;}p = tmp;}//last nodeif (p->val < middle->val){p->next = start;start = p;}else{end->next = p;end = p;}end->next = finish;end = finish;l[0]->next = start;ListNode **result = (ListNode **) malloc(sizeof(ListNode*) * 2);if(start == middle || start->next == middle){result[0] = l[0];}else{ListNode **before = (ListNode **) malloc(sizeof(ListNode*) * 2);before[0] = l[0];before[1] = middle;before = listqsort(before);result[0] = before[0];free(before);before = NULL;}if(middle == end || middle->next == end){result[1] = end;}else{ListNode **behind = (ListNode **) malloc(sizeof(ListNode*) * 2);behind[0] = middle;behind[1] = end;behind = listqsort(behind);result[1] = behind[1];free(behind);behind = NULL;}return result;}ListNode *sortList(ListNode *head) {if(head == NULL)return head;ListNode ** result = (ListNode **) malloc(sizeof(ListNode*) * 2);result[0] = new ListNode(0);result[0]->next = head;result[1] = NULL;result = listqsort(result);head = result[0]->next;free(result);return head;}int main(){//function startint data[] = {1,3,3,1,3,1,3,3,2,3,2,2,1,1,1,3,2,2,1,1,2,2,2,3,3,1,1,2,2,2,1,2,1,1,2,3,3,2,2,3,2,3,2,2,2,1,1,3,2,3,3,1,1,1,2,2,1,2,2,2,2,3,1,3,1,1,1,2,1,2,2,2,1,3,2,2,2,3,3,2,3,3,1,1,2,2,1,2,1,3,2,1,3,3,1,2,1,1,1,1,1,2,1,2,2,2,2,3,3,3,1,1,3,2,1,1,2,1,3,3,2,2,1,3,1,3,1,3,2,2,3,2,3,2,2,1,2,3,1,3,1,2,3,3,2,3,3,3,1,1,2,3,1,2,3,2,1,1,2,3,1,1,3,1,2,2,3,2,1,3,1,2,1,3,2,1,1,2,2,2,1,3,1,3,2,3,3,1,1,3,1,2,1,2,3,1,2,1,1,3,1,3,3,1,1,1,2,2,1,3,1,2,2,3,2,1,3,2,1,3,2,2,3,3,2,2,1,3,2,2,2,2,2,3,2,2,3,1,3,2,1,3,2,1,2,3,3,3,1,2,2,3,1,1,2,2,3,2,1,1,1,1,1,3,2,2,2,1,3,2,1,2,3,2,1,1,2,1,3,3,1,3,1,2,2,1,2,3,2,3,3,1,2,3,2,2,3,3,2,1,3,2,2,2,3,3,3,1,1,2,1,1,2,3,3,3,1,3,2,2,1,2,2,1,2,3,1,3,2,2,3,3,3,1,2,3,2,1,3,1,1,2,2,1,1,1,2,2,3,1,3,1,2,3,3,3,2,2,3,1,1,1,3,2,1,1,3,1,2,3,3,3,2,1,2,3,2,3,2,1,3,2,2,2,2,1,1,3,1,1,1,3,2,2,2,1,2,3,2,3,2,2,1,2,3,2,1,1,3,1,3,3,1,1,1,1,1,2,3,3,3,1,3,2,2,3,1,1,3,1,1,1,3,1,1,2,2,2,1,1,1,1,2,1,3,3,3,1,2,2,2,2,3,3,1,2,2,3,1,3,1,2,1,2,2,3,3,1,3,3,2,1,3,1,1,3,1,2,3,3,3,3,1,1,3,3,3,3,2,2,2,1,1,3,2,2,2,3,1,3,3,3,1,1,3,1,3,2,3,1,2,3,2,2,3,3,3,1,2,1,2,1,2,3,1,2,2,2,1,1,1,2,2,1,2,1,1,1,3,2,1,2,3,2,2,2,1,2,3,2,2,1,3,3,3,1,2,3,3,1,1,3,3,1,1,2,1,2,3,1,2,3,2,2,3,2,1,3,1,3,1,2,2,2,2,1,2,3,3,2,2,2,3,2,2,1,2,2,3,1,3,1,1,1,2,3,3,2,2,3,3,2,3,1,1,2,2,2,3,2,2,1,1,3,2,2,3,3,3,3,1,2,3,3,1,3,3,1,2,2,1,3,2,3,3,2,3,2,1,2,1,2,2,3,3,2,3,3,1,1,2,1,3,2,2,3,1,2,1,3,1,1,3,3,3,3,2,3,3,3,1,3,2,2,2,3,3,1,2,1,2,3,2,2,2,2,3,3,1,1,3,3,2,1,3,2,2,3,2,3,2,2,2,3,1,2,1,3,2,2,1,2,2,3,2,2,2,2,2,1,1,2,1,3,3,2,2,2,1,3,3,3,3,2,3,3,2,3,3,1,3,3,1,3,2,2,2,2,2,1,2,2,3,3,3,1,2,3,1,3,2,2,2,2,3,1,1,1,3,2,3,3,2,3,1,2,1,2,2,1,2,2,3,3,1,2,3,2,2,3,3,1,1,1,2,1,2,3,3,2,2,2,2,3,1,1,1,3,3,1,1,1,3,3,3,2,3,3,1,1,1,2,3,2,2,2,2,1,2,2,3,1,3,1,2,3,1,3,3,1,2,3,2,2,3,3,1,1,2,1,2,3,3,3,2,1,2,1,2,3,1,2,2,1,2,2,2,1,2,3,3,3,3,1,2,1,3,1,1,2,1,3,1,3,2,3,2,3,3,1,2,2,2,3,3,2,1,1,3,1,2,1,3,1,2,1,2,2,2,1,3,1,1,2,2,1,2,1,2,3,3,1,1,3,1,1,1,2,2,3,1,3,3,3,3,2,2,1,3,2,3,2,2,1,3,3,2,1,2,1,2,2,3,1,2,2,1,2,2,3,1,3,3,2,3,1,1,1,3,3,3,3,3,3,1,1,1,3,3,2,2,1,1,3,2,2,2,3,3,3,1,2,2,1,1,3,3,3,2,2,2,2,3,1,2,1,2,2,3,3,3,2,2,2,1,1,1,3,1,1,1,1,1,1,1,2,3,1,3,1,1,3,1,2,1,3,2,2,3,1,2,3,3,2,3,1,1,2,2,3,3,2,2,1,2,2,1,2,2,1,2,1,3,2,1,2,3,1,1,2,3,2,2,2,3,2,3,3,1,1,1,3,3,1,1,2,1,1,1,2,3,3,2,3,3,3,1,2,3,2,2,2,2,2,2,2,1,1,2,2,1,3,1,1,2,3,1,2,3,2,1,2,2,1,3,3,2,2,1,2,1,3,1,3,2,1,1,3,2,3,1,1,2,3,1,1,1,3,2,2,3,2,3,1,2,2,3,1,3,2,1,1,3,2,2,1,3,2,1,2,3,3,1,3,3,3,1,1,2,1,1,2,3,3,2,2,3,2,1,1,2,3,1,1,3,2,3,2,1,2,3,2,1,1,1,1,3,2,3,2,3,1,3,2,1,3,1,3,3,2,2,3,2,3,1,3,2,1,2,2,2,3,3,2,1,2,3,1,1,3,1,2,2,2,3,2,3,1,1,2,1,1,3,1,3,2,1,1,1,3,1,1,3,3,3,3,1,2,3,2,3,2,1,2,1,3,1,3,1,2,2,3,2,3,2,3,3,3,3,1,1,2,2,3,1,1,3,2,1,1,2,1,2,1,1,1,1,1,1,2,3,3,3,3,2,3,1,2,3,3,1,1,3,1,1,1,2,1,1,2,2,2,2,2,1,2,2,2,2,2,2,1,3,3,1,2,2,1,2,1,1,1,1,2,2,3,2,2,2,3,1,3,1,2,2,2,3,3,3,2,1,2,1,1,3,3,2,3,1,2,1,2,2,3,2,3,3,3,3,1,1,1,1,1,1,2,3,1,1,3,1,3,2,3,1,1,1,2,1,1,2,2,2,3,2,2,2,1,3,1,1,1,1,2,3,2,3,2,2,1,3,1,2,1,2,1,2,2,3,1,2,3,3,2,1,1,3,2,3,1,3,1,1,1,2,3,2,1,3,3,1,3,3,3,3,2,2,3,3,1,3,2,2,3,3,2,3,3,3,1,1,2,2,2,2,1,3,3,1,3,2,2,3,1,2,1,1,3,1,1,2,1,1,3,1,1,3,2,2,2,2,2,3,2,1,3,3,2,1,1,2,2,3,2,1,2,1,2,1,2,1,1,1,3,2,2,2,1,3,3,2,3,2,1,1,3,3,1,3,1,3,3,3,3,3,3,3,3,3,2,3,2,2,2,2,2,2,1,1,1,2,3,1,2,2,2,3,1,2,2,1,2,2,1,1,2,3,1,2,2,2,3,3,1,1,3,2,3,2,2,3,1,2,1,1,1,2,3,3,1,1,2,1,2,3,3,2,2,3,1,3,3,3,3,1,1,3,2,2,3,2,1,3,1,3,2,1,2,1,2,1,3,2,3,1,3,2,2,3,3,3,1,2,3,3,1,1,2,1,2,1,3,2,1,1,1,2,2,2,2,2,1,2,1,3,2,1,2,2,1,1,2,3,3,1,3,2,2,3,3,2,1,3,2,1,3,3,2,2,1,3,2,1,3,2,3,2,2,1,2,1,1,3,1,1,3,3,3,3,1,2,3,3,3,3,2,3,2,3,3,3,3,1,1,2,2,1,2,2,2,3,2,1,2,1,2,3,1,1,1,3,1,2,3,2,3,2,2,2,3,1,2,3,2,1,1,1,1,1,2,3,1,3,2,2,3,3,3,2,1,2,2,1,3,2,2,1,2,3,1,3,3,1,3,3,2,2,1,1,2,3,1,1,3,3,1,3,3,3,3,2,3,1,2,2,1,1,1,1,1,3,1,3,2,3,2,1,2,2,1,2,3,2,1,1,3,2,3,2,3,3,1,2,1,2,3,3,2,3,3,2,3,2,3,3,3,1,2,3,2,1,2,3,2,2,1,3,3,3,1,2,3,3,1,2,1,1,2,1,2,1,2,2,3,3,2,1,3,1,1,1,2,2,1,3,3,1,1,2,2,3,2,3,2,3,3,1,3,1,2,3,3,1,2,2,1,1,2,1,1,3,3,2,3,3,1,2,3,3,2,2,3,1,2,3,3,3,3,1,2,3,1,2,2,1,1,3,1,2,3,3,1,2,2,1,3,2,3,2,1,2,1,3,2,3,1,1,1,2,3,1,3,2,2,2,2,2,3,1,2,2,1,2,2,3,2,2,1,3,1,2,2,2,1,2,3,1,1,3,2,3,2,3,3,2,1,3,2,1,3,2,2,3,1,1,3,3,1,2,3,2,1,3,3,3,3,1,1,3,1,3,2,2,3,3,1,3,1,1,2,1,1,3,1,1,2,3,3,1,1,3,2,2,3,3,3,3,2,2,2,2,3,2,1,3,1,2,1,3,3,1,3,3,2,2,2,3,1,3,1,2,2,2,3,1,3,3,1,3,3,2,3,1,1,2,2,2,2,3,1,1,2,3,1,1,3,1,3,1,1,3,3,2,2,1,3,2,2,2,2,3,1,1,1,2,1,1,1,2,2,3,2,1,2,1,1,2,3,2,1,1,1,2,2,3,3,1,3,1,2,2,1,2,2,1,1,1,1,2,1,1,1,1,3,2,3,1,3,3,1,3,1,2,1,1,1,2,3,3,2,1,1,3,2,3,2,3,3,2,3,3,2,2,1,3,2,2,2,3,2,1,1,3,2,1,2,2,1,1,2,1,2,3,2,1,3,2,2,2,3,1,3,2,1,3,2,1,1,1,3,1,1,1,2,2,2,2,2,3,2,3,1,3,1,3,3,2,3,3,2,3,3,3,2,2,3,3,3,1,3,2,1,1,3,2,3,3,2,2,3,1,1,1,2,3,1,3,3,3,3,1,1,3,3,3,1,1,2,1,2,3,2,1,3,1,1,3,3,3,2,3,1,2,2,2,2,1,2,3,3,3,2,1,3,2,1,3,3,3,1,2,3,3,2,1,1,3,1,1,3,1,3,2,3,1,3,2,2,3,2,3,3,2,1,2,3,1,1,1,3,3,3,3,1,2,2,1,3,2,1,3,3,1,1,2,2,1,1,1,2,1,3,2,1,2,3,2,1,1,3,2,2,3,1,1,1,2,2,2,2,3,2,1,3,3,2,3,2,3,2,3,1,1,3,2,1,2,3,1,2,2,1,3,3,2,2,1,3,3,1,3,1,1,3,2,3,2,2,1,2,2,3,2,2,1,3,1,2,1,3,2,1,3,1,3,2,3,2,2,2,1,3,1,1,2,2,3,2,1,2,1,2,3,1,1,3,1,3,2,3,1,1,1,3,1,2,1,3,1,1,2,2,1,2,1,1,2,1,3,1,2,2,2,2,2,1,2,3,2,1,3,1,2,1,2,2,2,1,1,1,2,3,1,1,3,2,3,2,2,2,2,2,2,2,1,2,2,3,3,3,2,1,1,1,3,2,2,3,2,2,1,2,2,2,3,3,3,1,3,3,2,3,1,2,3,1,3,2,1,1,2,1,1,2,1,1,3,3,2,2,3,2,1,2,3,2,1,3,1,2,3,1,3,3,3,2,1,2,2,1,1,1,3,3,2,1,1,1,3,1,2,1,2,2,3,2,3,3,3,2,3,3,1,2,3,2,1,1,1,2,3,1,2,3,1,2,3,1,3,1,3,1,2,2,1,1,3,1,1,3,1,2,3,2,1,3,3,2,2,2,2,2,3,3,2,1,1,1,2,2,3,2,3,3,2,3,1,3,2,2,2,1,2,2,2,2,3,2,1,1,2,2,3,3,2,1,2,3,2,2,3,2,3,2,3,3,1,3,3,3,2,3,1,2,3,3,2,3,1,2,2,1,1,3,3,2,3,2,1,3,2,3,3,1,3,1,2,3,1,2,2,2,3,3,2,1,3,1,3,2,2,3,2,2,2,2,2,2,2,3,3,1,3,2,3,2,1,1,2,1,2,1,1,2,2,3,3,2,1,1,1,3,3,2,1,1,3,1,3,1,3,3,2,2,2,3,1,1,2,3,3,1,2,2,2,1,3,3,1,3,3,1,2,3,3,2,3,3,2,1,3,1,2,1,3,1,1,1,3,3,2,1,1,1,2,2,3,3,2,3,3,1,3,2,3,3,3,2,2,1,2,3,2,3,3,2,2,2,1,2,3,3,3,2,3,3,1,1,3,3,1,2,1,3,3,3,1,3,3,3,2,1,3,3,1,3,2,3,1,2,1,3,3,3,3,1,3,3,1,1,3,2,3,2,1,3,1,1,2,2,1,1,3,1,3,1,3,1,2,2,2,2,3,2,1,3,3,1,2,3,2,3,2,3,1,2,2,2,2,3,1,1,1,3,2,2,3,1,2,2,3,3,2,1,2,1,3,2,1,3,2,1,3,1,1,2,1,2,3,2,3,1,1,2,3,1,1,2,2,2,2,3,2,2,1,2,1,2,1,1,1,1,1,3,1,1,3,3,3,1,3,2,3,3,1,2,1,2,2,3,1,3,3,1,3,3,3,1,1,2,2,3,2,2,3,2,1,3,3,3,3,3,2,1,2,2,3,1,1,1,1,1,3,3,2,3,3,3,2,3,2,1,2,3,2,2,1,2,2,1,2,3,3,1,3,3,2,1,1,1,2,3,2,3,1,3,2,2,3,1,1,2,1,3,2,2,2,2,1,2,2,1,1,2,1,1,2,1,1,2,2,3,2,2,2,1,2,3,2,3,2,3,2,1,2,3,3,3,1,1,2,1,3,1,2,1,1,3,3,1,1,3,2,2,1,3,2,2,2,2,1,3,2,2,2,2,2,3,2,3,2,3,3,3,1,3,3,1,1,3,1,2,2,1,1,2,3,2,3,2,1,3,1,2,3,2,3,3,3,2,1,2,1,3,2,2,1,2,3,3,1,2,2,1,3,3,3,3,1,3,3,2,2,3,2,1,3,2,2,1,3,1,3,2,1,2,3,1,3,3,1,2,2,3,1,1,3,3,1,3,3,3,1,1,1,2,3,3,2,3,3,1,2,1,2,3,3,2,2,3,3,3,3,2,2,3,3,3,1,1,1,1,1,1,2,3,2,2,1,2,1,3,1,2,3,3,1,1,3,1,2,2,1,1,1,2,1,3,3,1,1,1,3,2,1,3,2,2,3,3,2,2,1,1,3,1,2,2,2,1,2,1,2,2,1,3,3,1,2,3,3,3,1,3,3,1,3,3,2,2,2,3,2,2,3,1,3,2,1,3,2,2,1,1,1,2,2,2,1,1,3,1,3,3,2,2,1,2,2,3,3,2,2,2,2,1,1,2,3,1,3,3,2,3,2,3,1,2,2,2,2,2,3,3,2,1,2,2,3,2,3,2,2,1,1,1,2,2,3,1,3,1,2,3,2,1,3,3,1,1,2,3,3,2,1,3,1,2,2,3,1,1,1,3,2,3,1,3,1,3,2,2,3,3,3,2,3,3,3,2,3,3,2,2,1,2,1,3,3,1,1,3,3,2,2,3,2,1,2,3,1,1,2,3,2,1,2,3,1,1,3,1,3,1,3,2,2,1,2,1,2,2,1,2,3,3,1,3,2,2,1,2,2,3,3,3,1,2,1,2,2,3,1,3,1,2,1,3,1,2,1,2,2,1,2,3,3,1,3,3,1,3,2,1,2,3,3,3,3,3,1,2,1,2,2,3,1,2,3,1,3,3,1,1,2,1,1,1,3,2,1,3,3,1,3,2,1,2,1,1,1,1,2,1,3,1,2,1,1,3,2,1,1,2,3,1,1,3,3,3,1,1,2,2,3,1,2,1,3,2,3,3,3,3,1,1,3,3,3,1,2,3,3,3,3,3,1,3,2,2,1,3,1,3,1,3,2,1,1,1,1,1,3,1,1,2,1,2,2,2,3,3,2,3,2,3,2,3,3,1,2,2,3,2,2,1,3,3,3,2,3,1,3,3,2,2,1,2,3,2,3,3,2,1,1,3,1,2,2,2,1,2,1,1,2,2,2,1,2,1,3,1,3,3,1,2,2,3,1,3,1,2,1,2,1,3,3,1,3,2,3,2,1,1,3,2,1,1,2,2,2,1,3,3,3,1,3,3,2,3,3,1,2,3,2,3,2,2,1,2,2,3,1,3,2,3,1,2,2,1,3,3,3,2,2,3,2,2,2,1,3,3,1,1,1,2,3,1,2,3,1,1,1,1,3,3,1,1,3,1,1,3,1,1,1,2,2,1,1,1,1,2,1,1,2,3,1,2,1,2,2,2,3,2,1,1,1,1,2,2,3,2,3,1,1,3,3,2,2,1,2,1,1,1,2,2,2,2,3,2,3,3,2,2,1,1,3,1,3,2,1,2,2,2,3,1,2,1,3,1,3,3,3,1,2,1,1,2,3,2,3,2,3,3,1,3,3,3,2,2,3,3,3,3,3,3,3,2,1,1,3,1,1,3,2,1,2,3,2,3,2,3,3,1,2,3,2,3,2,1,2,3,3,2,3,1,2,1,2,1,2,1,2,3,2,2,2,3,1,2,3,3,1,1,1,3,2,2,3,1,3,2,3,1,2,1,1,2,3,3,3,1,1,1,3,2,1,2,1,2,3,3,3,3,1,1,1,3,2,2,2,3,1,2,1,2,3,1,2,1,2,1,3,1,1,1,2,1,1,3,2,2,3,1,3,1,1,3,3,1,3,1,3,2,2,3,1,2,3,3,3,3,2,2,1,1,3,2,1,3,1,1,2,3,2,2,2,2,3,1,2,2,1,1,2,2,2,1,1,2,3,1,2,2,1,2,3,3,2,1,2,2,1,3,2,1,3,2,1,3,2,3,2,3,1,2,2,2,1,2,3,1,2,2,1,1,1,3,2,3,2,3,3,1,3,3,3,1,3,1,1,1,2,1,3,2,3,1,1,1,1,2,2,3,3,1,1,3,1,3,2,1,2,2,2,1,2,3,1,1,2,3,2,3,3,1,3,2,1,2,2,3,3,1,3,2,2,2,1,1,2,2,2,3,1,3,2,1,3,3,2,3,3,3,2,2,3,2,1,3,2,2,2,3,2,1,2,2,3,2,2,2,3,2,3,1,2,1,1,1,3,1,2,2,2,1,3,1,2,3,1,2,1,1,1,1,3,3,2,2,1,3,2,2,2,3,1,3,3,2,2,2,3,2,3,1,2,2,2,3,2,3,2,2,3,2,3,1,3,1,2,2,3,2,1,1,1,2,3,1,2,3,1,3,1,1,3,1,2,1,1,3,1,2,3,2,1,3,3,3,1,1,2,3,3,1,2,1,2,3,3,3,1,1,2,1,3,2,3,3,3,3,2,3,3,1,1,2,2,3,1,3,2,3,1,2,3,3,2,2,1,2,3,2,1,2,2,2,2,3,2,2,2,1,2,3,3,1,1,2,3,2,2,3,3,3,1,3,2,2,2,1,1,3,2,1,1,1,3,2,1,2,1,2,2,1,2,3,1,2,2,1,1,3,1,2,3,3,3,1,1,3,1,3,3,1,3,2,2,3,1,3,3,3,3,3,3,1,3,2,1,2,3,2,2,2,2,3,3,1,2,3,1,3,3,3,2,2,3,1,3,1,2,2,1,1,2,1,2,1,3,3,2,1,3,1,1,2,1,2,3,1,2,2,2,3,3,3,1,1,1,1,3,2,1,2,2,3,1,3,3,2,2,2,2,1,2,3,1,3,3,2,2,3,1,2,3,2,3,2,1,2,3,2,3,3,1,3,1,2,3,2,3,3,1,1,3,3,3,1,3,1,2,2,3,1,3,1,1,3,1,1,3,3,3,2,2,1,1,3,2,1,2,3,2,3,3,2,1,2,2,1,3,3,2,3,2,3,2,2,3,2,1,1,2,2,1,3,3,3,3,2,3,1,3,1,1,1,3,3,2,1,3,1,3,2,1,3,2,1,3,3,1,3,1,3,3,1,2,2,2,3,1,3,2,2,1,2,1,3,2,2,2,1,2,3,3,3,1,1,2,3,3,1,3,1,2,3,1,1,1,3,1,3,2,3,2,3,1,3,3,1,2,2,1,1,2,1,2,3,3,1,2,2,1,2,2,1,1,1,1,2,2,1,2,3,3,2,1,3,2,1,2,1,1,1,1,2,1,2,3,1,2,3,2,1,3,2,1,3,3,3,1,3,1,2,2,3,1,3,2,1,1,1,2,2,2,3,2,2,3,3,2,2,2,1,2,2,2,1,3,3,2,1,3,2,3,2,2,1,3,1,3,2,3,1,3,3,1,1,3,3,3,1,2,3,1,2,3,1,3,1,2,2,3,1,3,3,3,2,3,3,3,2,3,2,3,1,3,2,3,3,3,3,2,1,1,1,1,2,2,1,1,3,2,3,2,3,3,2,3,3,2,2,3,2,3,3,1,3,3,2,2,2,3,3,1,1,2,1,1,3,3,3,2,3,3,1,1,2,3,2,2,2,2,1,1,1,3,3,1,3,2,1,1,1,1,3,3,1,3,1,2,2,3,2,1,1,2,1,3,2,3,2,1,3,3,3,2,3,2,3,3,2,2,3,1,3,2,2,2,3,3,1,1,2,2,3,1,2,2,2,3,3,3,1,2,3,3,1,3,2,2,1,2,1,2,3,1,3,3,1,2,2,2,2,2,1,3,2,2,3,2,1,1,1,3,3,2,1,1,2,2,3,3,3,1,2,1,3,2,2,1,3,1,2,3,1,3,1,2,1,3,3,1,2,2,3,2,1,1,1,2,3,3,3,3,1,1,1,2,2,2,2,1,1,1,3,2,3,2,2,3,2,1,1,1,2,2,3,2,2,3,3,2,3,2,1,1,1,3,1,1,1,2,1,2,1,1,3,2,2,1,2,2,3,3,1,3,1,3,2,1,2,3,1,1,1,3,2,1,2,2,1,1,1,1,2,1,3,3,1,1,1,1,2,2,1,1,1,2,1,3,2,2,3,1,1,1,1,2,3,2,2,1,2,3,1,1,2,3,3,1,1,3,3,2,1,2,3,2,3,3,2,3,3,1,1,2,1,2,2,3,2,3,2,3,1,1,2,2,1,1,1,1,2,3,1,2,2,1,2,1,3,3,3,3,2,3,3,2,1,2,1,2,3,2,1,2,2,3,1,1,2,2,2,3,3,2,3,1,3,2,2,2,1,1,2,1,2,1,1,1,1,2,2,1,1,1,2,1,3,2,2,1,1,2,1,1,1,2,2,2,2,3,3,2,1,1,3,3,2,3,2,2,1,3,1,1,2,1,1,3,3,2,2,1,2,2,1,1,3,2,3,1,2,2,1,3,3,2,1,1,2,2,2,2,2,1,3,1,3,3,3,3,1,3,2,3,2,3,1,3,1,3,2,2,3,1,1,1,1,3,2,2,2,1,3,1,2,1,3,2,3,1,2,2,3,3,2,2,1,3,1,3,3,3,3,2,3,1,2,1,3,3,3,2,1,3,2,2,3,1,1,2,3,3,1,1,2,2,3,3,3,3,3,3,2,3,1,3,1,1,1,2,1,3,1,3,1,1,3,1,3,1,1,2,1,2,2,3,1,2,1,3,1,2,3,2,2,2,2,2,3,1,1,2,2,3,3,1,1,2,2,3,3,3,1,3,2,3,1,3,1,3,1,3,1,1,3,3,3,1,1,3,3,3,2,2,1,2,2,3,1,2,2,3,3,1,2,1,2,3,3,1,2,2,3,2,2,2,1,1,2,2,2,2,3,3,1,2,2,2,1,2,1,1,3,1,1,1,1,2,2,2,1,1,1,2,3,1,2,3,1,3,3,3,2,1,1,1,1,2,3,3,1,3,1,1,2,2,2,3,2,2,2,3,1,1,1,3,2,2,1,2,3,1,2,1,3,3,3,1,1,3,3,1,1,3,3,1,2,3,1,3,2,2,2,2,3,3,2,3,3,2,2,3,2,2,1,3,1,1,1,3,3,2,2,1,1,1,3,2,1,3,1,3,2,3,2,1,3,3,3,2,2,3,2,2,1,3,1,1,3,2,2,3,2,1,3,3,1,1,3,1,3,1,1,3,1,2,1,2,3,1,3,3,3,3,2,2,3,3,3,3,2,3,1,1,3,1,1,3,3,1,3,3,3,3,1,1,2,2,1,3,3,2,2,3,3,3,3,1,1,1,2,2,3,2,3,1,1,2,3,1,3,3,2,2,2,1,3,1,1,3,3,1,1,2,2,2,3,1,3,2,2,2,3,1,1,3,3,2,2,1,2,1,2,2,1,3,1,3,1,3,2,1,3,3,3,3,2,2,2,3,3,2,2,1,1,2,3,2,1,3,3,1,2,1,2,3,1,1,2,3,3,1,3,2,2,1,3,3,1,1,1,2,1,2,2,1,1,1,2,2,3,1,2,1,3,2,3,1,1,3,1,2,1,3,3,2,2,1,1,1,3,1,2,2,2,3,2,3,2,2,3,1,2,2,1,1,3,3,3,1,3,1,2,2,2,3,1,3,2,1,1,1,3,1,3,2,3,3,3,1,1,2,2,2,3,2,2,2,2,1,1,2,1,1,2,2,2,1,1,1,2,1,3,3,1,3,2,1,2,2,1,2,3,1,1,2,2,3,3,2,2,1,3,3,1,3,2,2,3,2,1,1,3,2,3,1,1,2,3,2,2,2,1,2,2,3,3,2,2,1,1,2,1,1,1,2,1,1,2,3,2,2,2,3,2,2,2,2,2,1,3,1,3,3,3,3,2,3,3,3,2,1,1,1,3,2,3,3,1,1,1,3,1,3,3,2,1,1,2,3,2,3,2,3,2,1,3,3,1,1,2,2,2,1,1,2,3,2,1,1,3,1,3,1,1,3,2,3,2,3,1,1,3,1,3,3,2,3,2,3,1,1,3,1,3,2,3,1,3,2,1,2,1,1,2,2,3,2,1,2,1,1,2,1,2,1,1,2,3,3,3,3,2,2,3,3,2,1,1,1,3,3,3,2,1,2,2,1,2,2,1,3,2,1,2,1,1,1,3,1,2,1,3,3,3,2,3,1,3,2,1,1,2,3,1,3,2,3,3,1,2,1,3,3,1,1,1,2,2,3,2,1,3,2,2,1,2,2,1,3,3,1,2,2,3,3,2,2,1,3,3,2,2,1,1,3,2,3,2,2,1,2,1,3,3,2,1,3,2,3,3,1,3,2,2,3,2,3,3,2,3,1,2,3,3,1,2,1,1,2,3,3,2,2,2,3,1,2,1,3,2,1,3,3,2,1,1,3,3,1,3,3,1,2,1,2,2,3,2,3,2,1,1,3,1,3,3,1,2,2,2,3,2,3,2,3,3,1,2,3,3,2,2,3,1,1,2,3,1,2,3,2,1,1,2,1,1,1,3,3,3,3,1,2,2,2,3,3,2,1,3,1,1,2,3,3,3,3,1,3,2,2,1,2,3,3,3,3,1,3,3,3,1,2,1,2,1,1,1,3,3,1,1,1,2,2,1,3,3,2,3,1,3,2,1,2,1,1,1,1,1,1,2,3,2,1,3,3,2,2,1,1,3,2,1,1,3,2,1,2,1,2,3,1,2,2,3,3,2,3,3,1,2,2,1,3,1,2,3,3,3,2,2,2,3,3,2,2,3,3,2,1,3,3,3,1,3,1,2,3,2,1,2,1,2,2,3,1,2,3,2,3,3,3,1,3,3,3,1,2,3,2,3,3,2,1,2,1,3,1,3,3,2,3,3,2,1,3,3,1,1,3,1,2,3,3,2,3,3,1,2,1,2,1,3,3,3,1,3,3,2,1,2,1,1,1,2,3,1,1,2,3,3,1,1,1,3,2,1,1,1,2,1,2,3,2,2,1,1,3,3,1,3,3,3,1,2,2,2,1,1,1,2,1,1,2,1,1,2,1,1,1,3,3,3,1,3,1,2,2,2,2,1,2,2,1,1,3,3,1,2,2,1,1,3,1,1,3,1,2,2,3,1,3,1,2,3,2,1,3,3,3,1,2,2,1,2,1,1,3,2,1,1,1,3,1,2,1,2,2,3,1,1,3,3,3,3,3,3,1,3,3,2,1,3,2,2,2,1,3,2,1,3,3,2,2,2,1,1,3,1,3,1,2,2,3,2,2,3,3,1,3,3,2,1,3,1,3,3,1,3,2,2,3,3,1,3,3,3,3,3,1,2,3,3,3,3,3,3,1,3,1,3,1,3,2,1,2,1,1,1,1,3,3,2,3,2,3,2,2,2,1,3,2,3,2,2,3,3,2,1,2,2,2,3,2,1,3,1,3,1,2,1,2,3,2,3,1,1,3,1,1,1,1,1,1,2,3,1,2,3,2,2,2,1,3,1,1,1,1,2,1,2,3,2,2,2,1,2,3,1,1,1,3,2,1,1,3,2,1,2,1,2,2,3,3,1,3,1,3,1,1,1,3,2,2,3,2,2,2,3,2,2,3,3,3,1,2,2,2,3,1,3,3,3,3,1,1,1,2,1,2,2,1,3,2,2,2,2,1,2,3,3,1,1,1,1,1,3,3,3,3,1,1,1,3,3,2,3,2,1,2,2,3,2,2,3,1,2,3,1,3,1,3,2,3,1,3,1,1,2,2,1,2,3,3,3,2,3,3,2,2,3,1,2,3,2,2,3,3,3,1,2,1,1,2,3,1,3,1,3,3,1,1,2,2,3,3,2,2,1,2,1,1,3,2,2,1,1,2,3,2,2,1,1,3,2,3,3,3,2,3,1,1,1,2,1,2,3,2,3,2,3,1,2,3,2,3,1,1,2,2,3,1,1,2,1,3,3,1,3,2,2,2,3,1,1,1,1,1,2,2,2,3,2,1,2,2,2,1,2,1,3,1,3,1,3,2,1,2,3,1,3,1,2,3,2,3,1,2,3,2,1,2,2,3,3,3,1,3,3,3,2,2,3,1,3,1,2,3,2,3,2,3,3,2,3,3,2,2,2,1,1,2,2,2,3,3,1,2,1,1,3,1,1,2,1,2,1,3,2,1,1,2,2,1,3,1,3,2,1,1,3,1,2,3,3,2,3,3,1,1,3,3,1,1,1,2,1,2,1,2,2,1,3,2,1,2,2,1,1,2,2,2,2,3,1,3,1,2,3,1,2,1,2,3,3,1,1,3,1,1,2,1,3,3,1,1,1,1,3,2,2,3,2,2,1,2,1,1,3,1,1,1,1,1,1,2,3,3,1,3,2,2,2,3,2,2,3,3,3,2,2,3,2,3,2,2,1,3,3,3,3,3,3,3,1,1,3,1,2,2,1,2,2,1,2,2,3,3,3,2,1,3,2,1,3,3,1,3,2,3,3,3,2,1,1,3,3,3,2,2,3,1,3,1,3,3,1,3,3,3,3,2,1,1,1,2,3,3,2,2,2,2,3,2,2,3,1,1,3,2,2,2,1,2,2,2,1,3,1,2,1,1,1,1,3,2,3,3,2,1,3,1,2,3,3,2,3,1,3,2,3,1,1,1,3,3,1,2,1,1,2,1,3,1,3,3,1,1,1,2,2,2,2,1,3,2,3,3,3,2,3,1,3,2,2,1,1,3,1,3,2,2,1,3,1,3,3,1,2,2,2,1,1,2,2,3,2,2,2,2,1,3,1,1,3,3,1,1,1,1,2,3,1,2,3,1,1,2,2,1,2,1,3,3,2,2,2,2,2,3,2,2,3,2,2,2,3,1,2,2,2,1,1,1,1,3,3,1,1,3,3,2,2,2,3,3,3,1,3,3,2,1,1,2,3,2,1,3,1,1,2,1,2,1,1,2,3,1,1,1,1,3,3,1,2,1,2,1,1,2,3,1,1,1,1,2,1,3,1,3,2,2,3,1,1,3,3,1,1,1,2,2,3,1,2,1,1,2,3,2,3,1,1,3,1,3,3,1,1,1,3,3,3,3,1,3,2,2,1,1,2,1,2,2,3,1,3,1,1,1,3,2,3,2,1,1,3,1,2,2,3,3,3,3,2,3,1,2,2,3,2,3,2,1,3,1,2,2,3,2,3,3,3,3,3,1,3,2,1,3,2,3,1,1,2,1,3,2,1,1,1,1,1,3,1,1,2,2,2,3,3,2,2,1,1,1,1,3,1,3,3,3,2,3,1,2,1,1,3,3,3,2,1,3,2,2,2,2,1,2,2,1,3,1,2,3,2,1,3,1,3,3,1,1,3,2,1,1,3,2,3,2,3,2,3,1,2,2,1,2,2,2,3,1,2,2,3,3,2,3,3,2,3,2,3,2,3,3,1,3,1,1,1,3,3,3,2,2,2,1,2,1,3,1,2,1,3,2,2,3,1,1,3,1,1,2,3,2,3,2,3,1,2,1,2,1,3,1,3,2,1,2,3,3,2,2,1,1,3,3,3,1,3,2,2,2,2,1,2,2,3,2,1,1,3,2,1,2,3,2,1,3,1,3,3,2,1,1,3,3,1,3,3,3,1,2,1,2,2,3,2,1,3,1,2,2,3,1,1,3,3,1,3,1,3,3,1,1,1,3,3,1,1,2,3,3,2,1,1,3,3,1,1,1,2,2,1,3,1,3,3,3,2,2,2,2,3,1,1,3,1,3,1,3,2,3,3,2,2,1,1,1,2,3,2,3,2,3,2,2,2,1,3,3,2,3,1,2,3,3,3,3,1,1,1,3,2,1,3,2,2,3,3,2,1,1,2,1,1,2,3,1,2,1,2,3,1,2,3,3,1,2,2,1,1,2,3,3,3,3,3,1,2,2,2,2,1,1,2,3,2,2,1,3,2,3,1,3,3,2,3,3,2,3,2,3,2,3,3,1,2,1,3,3,3,3,1,2,1,3,2,1,3,2,1,1,3,2,3,1,3,1,2,2,1,3,1,3,2,2,3,2,3,1,2,1,2,1,1,3,2,3,3,1,2,2,2,1,1,1,1,1,3,2,2,1,2,2,2,3,3,2,1,3,1,2,2,3,2,1,3,2,1,1,2,2,1,3,3,1,2,2,2,2,1,2,3,2,2,2,3,3,1,2,1,1,3,3,2,2,2,3,3,2,1,3,2,2,3,3,3,3,3,1,1,3,2,1,2,1,2,2,1,3,3,1,3,2,1,1,3,2,3,3,3,2,2,3,1,1,3,1,3,3,1,3,2,3,1,2,1,3,2,3,3,3,3,1,1,1,1,3,1,3,1,3,1,2,2,3,3,2,2,1,3,1,3,1,3,1,1,2,3,2,3,2,2,1,2,3,2,1,2,3,3,3,3,2,2,2,1,3,2,1,1,1,3,2,2,2,1,1,1,2,2,1,1,1,1,1,1,2,3,2,2,1,3,3,1,3,3,3,1,3,3,1,3,3,3,3,1,2,2,3,1,3,1,3,1,2,3,1,2,2,2,2,3,1,3,2,1,3,2,1,1,1,3,3,3,3,2,3,3,3,1,1,2,1,2,1,3,3,1,3,3,1,2,3,3,2,1,1,2,2,3,3,3,1,1,1,1,1,3,3,3,1,2,3,1,2,1,2,3,2,1,3,2,3,1,1,2,2,1,1,3,2,2,1,1,1,3,3,2,2,1,3,2,1,2,3,2,3,2,1,3,1,3,3,3,3,2,2,3,1,2,3,2,2,2,1,2,1,2,2,2,3,1,2,2,2,2,2,1,2,2,2,2,1,3,3,1,2,2,1,2,2,2,3,3,3,2,2,1,3,3,3,3,1,3,2,3,3,2,2,3,1,1,1,2,2,2,3,3,3,2,2,1,3,2,1,2,3,2,1,3,1,3,2,2,1,1,1,3,1,2,1,2,2,3,3,2,3,3,3,3,2,1,1,1,1,1,2,1,1,3,3,2,3,3,3,3,1,1,3,3,2,3,3,2,1,1,1,2,3,2,2,2,2,2,2,1,1,3,3,1,3,3,2,1,1,3,1,3,1,3,2,2,2,3,2,2,3,3,1,1,2,1,1,2,1,3,2,3,1,3,2,1,1,2,1,3,3,1,1,1,2,3,2,3,2,3,3,2,2,3,3,2,1,3,2,2,2,2,1,2,2,2,2,2,2,3,2,1,2,1,2,3,3,2,2,2,3,1,3,1,3,2,2,1,3,2,3,2,2,2,1,2,2,1,3,3,3,3,3,2,3,2,1,1,3,1,1,1,3,3,1,3,3,3,3,2,2,3,1,2,3,3,2,2,1,2,3,3,1,1,2,2,1,2,1,1,1,2,2,3,1,1,3,1,1,2,2,3,2,1,1,2,2,2,3,2,2,2,3,1,3,2,1,1,2,2,1,1,1,1,1,1,1,3,3,3,2,1,1,1,2,2,2,3,2,2,3,1,2,1,3,3,2,3,1,1,3,3,3,1,2,3,2,1,1,3,3,2,3,3,1,2,2,1,2,1,1,2,1,1,2,2,3,1,1,2,2,1,1,1,3,1,2,3,2,2,2,1,1,1,3,2,3,3,1,2,2,2,3,1,3,2,2,3,2,1,2,3,2,3,2,3,2,1,1,3,3,1,1,2,3,3,2,2,3,3,2,2,2,1,3,3,3,3,1,2,1,2,3,3,2,3,1,1,2,3,1,3,1,1,3,1,1,3,2,3,3,2,3,3,1,1,1,1,1,2,1,1,2,2,2,2,2,1,1,3,2,1,3,2,1,2,2,2,3,3,2,2,2,1,1,3,1,1,2,3,2,2,3,2,1,2,1,3,1,1,1,2,1,1,3,1,1,1,2,2,2,3,2,1,2,3,1,2,3,1,2,1,2,2,2,1,1,3,1,3,3,3,1,3,3,2,3,3,3,1,3,3,1,1,2,1,1,3,1,2,3,1,3,3,1,1,2,2,2,1,2,2,2,2,2,3,1,2,3,3,1,1,2,1,1,1,2,2,1,1,1,3,1,2,2,1,1,3,2,1,1,2,2,3,1,3,1,2,3,1,3,3,2,3,3,1,3,2,3,1,3,2,3,2,1,1,1,1,3,1,1,3,3,1,1,2,2,2,3,3,1,3,2,1,2,3,1,3,3,2,3,2,1,2,1,1,1,3,3,2,1,1,2,1,1,2,2,3,3,2,1,2,2,3,3,1,1,1,3,2,1,2,2,2,2,3,2,2,3,2,3,3,1,2,2,1,3,3,1,1,2,2,1,3,2,2,1,1,1,1,2,1,1,1,3,3,2,3,1,2,1,1,2,1,1,1,2,2,1,3,1,2,2,2,1,1,1,1,3,1,2,2,3,1,1,2,1,2,2,1,2,2,2,2,2,2,3,2,1,2,1,1,2,2,1,3,3,3,2,1,1,3,2,2,1,2,1,2,1,2,3,1,2,3,2,1,3,2,1,2,3,2,3,2,1,1,3,1,1,1,2,1,1,3,1,3,1,3,2,3,2,2,2,2,1,2,1,1,1,3,3,3,3,3,1,2,3,1,2,3,3,2,1,3,3,3,3,3,2,3,3,3,2,2,1,3,1,1,2,2,3,1,1,2,3,1,3,1,2,1,1,2,2,3,2,3,1,3,2,1,1,2,1,2,3,2,2,1,2,3,3,1,1,2,2,3,3,3,3,1,2,1,3,1,2,3,2,3,2,3,3,3,2,1,1,3,1,2,2,2,1,2,1,3,2,2,3,2,1,2,2,2,2,3,3,2,3,2,2,1,1,2,1,2,2,2,3,3,3,3,1,1,2,1,3,1,2,1,3,2,3,2,1,1,3,2,1,1,1,2,1,3,3,1,2,3,1,2,2,3,2,2,1,3,1,2,3,2,3,3,3,1,1,3,1,3,2,1,1,2,1,1,2,1,1,1,1,2,3,2,3,2,2,1,1,1,1,2,1,1,3,1,3,1,1,2,1,3,3,3,2,3,2,2,1,3,2,1,1,3,2,1,3,1,1,2,3,1,3,1,2,2,3,3,1,3,3,2,1,3,3,1,1,3,1,2,2,3,1,2,2,3,3,2,1,2,2,1,1,2,2,2,3,3,1,1,2,1,3,3,3,1,2,1,2,1,3,1,1,1,1,1,2,1,2,3,3,3,1,2,3,1,1,2,2,2,1,3,2,2,3,3,1,2,2,2,3,1,1,2,2,2,1,2,1,1,2,2,2,1,3,1,1,3,1,3,2,1,1,1,1,1,3,3,2,1,1,1,1,2,1,3,3,1,2,1,3,1,1,2,2,3,2,2,2,1,1,1,3,2,3,2,1,3,1,3,3,2,2,2,2,1,1,3,1,1,2,2,1,2,1,1,3,1,2,1,3,3,1,2,1,1,1,3,3,2,3,1,2,1,3,2,1,2,3,2,3,1,1,2,1,2,1,1,2,2,3,2,3,3,3,1,3,2,3,1,3,2,2,3,2,2,1,3,2,3,2,2,1,1,1,1,1,3,3,1,2,1,2,1,3,2,2,2,1,1,1,2,1,2,2,1,3,3,3,3,2,1,3,3,1,2,2,3,1,1,2,2,3,1,1,1,1,1,2,3,3,2,3,3,2,2,3,1,3,2,2,2,1,1,2,2,3,2,2,2,3,3,2,2,2,2,2,3,1,1,2,3,2,3,2,2,1,3,1,3,2,2,2,3,1,2,3,2,3,1,2,3,2,2,1,3,2,2,3,3,1,2,3,1,2,3,3,2,2,3,1,2,3,3,3,1,1,1,3,3,1,2,1,1,3,3,2,3,3,1,2,2,2,1,3,1,3,3,3,3,2,1,2,2,2,2,1,1,2,3,1,1,2,1,1,1,2,1,3,1,1,1,1,1,2,2,3,2,3,3,2,2,3,3,3,2,3,1,1,1,1,1,2,1,1,2,1,3,3,1,3,2,2,1,3,2,2,3,2,3,2,2,1,1,3,2,2,3,1,1,3,2,2,2,3,1,3,3,1,2,2,3,2,2,1,3,2,1,1,2,3,1,3,1,2,2,1,1,2,3,3,1,1,2,3,2,3,1,1,1,2,2,3,3,2,3,2,2,1,1,3,3,3,2,1,1,2,1,1,2,2,2,1,3,2,3,3,2,2,3,3,1,3,2,1,3,2,1,1,2,1,3,2,2,2,1,3,3,3,3,2,1,2,3,3,3,2,3,3,1,2,1,2,2,2,3,1,2,3,1,2,3,1,2,2,1,1,1,2,2,1,1,3,1,2,2,2,3,3,1,3,3,2,2,1,2,3,1,1,2,2,2,3,3,2,2,2,1,2,2,2,1,3,1,1,3,3,2,1,1,3,2,1,2,3,3,3,2,3,2,1,1,2,1,3,3,2,2,2,3,3,3,3,1,3,2,1,1,3,1,2,3,1,1,1,2,3,3,3,3,1,1,3,3,3,3,1,1,1,3,3,2,3,3,3,2,1,2,3,3,2,2,2,1,2,1,1,1,1,3,3,2,3,1,3,2,2,2,3,1,2,1,2,2,2,3,1,3,1,1,1,1,1,2,2,1,1,2,1,2,2,2,2,1,1,3,1,3,1,3,1,1,1,2,2,2,2,2,1,3,1,2,1,3,2,2,1,2,3,2,2,1,3,1,3,1,1,1,2,2,3,2,3,1,3,3,1,2,1,2,3,3,2,2,3,1,3,2,3,1,3,1,3,1,2,3,2,2,1,2,2,2,3,1,2,3,3,3,2,2,2,2,2,2,3,1,2,3,1,3,2,2,1,3,3,2,3,3,2,1,3,1,2,2,3,1,3,3,3,3,2,1,3,2,3,3,3,2,3,2,3,3,1,1,1,1,3,3,2,2,3,1,2,2,1,1,3,3,3,3,2,3,2,3,3,1,2,3,2,2,3,1,3,2,3,2,3,3,2,3,1,3,1,1,3,2,3,2,3,2,1,1,3,3,3,2,2,3,2,3,3,1,3,2,1,1,3,3,1,3,3,1,3,1,3,3,2,3,3,2,2,1,2,1,1,2,1,2,2,1,2,2,1,1,1,2,1,1,2,2,1,3,1,1,1,3,3,3,2,3,1,2,3,1,3,1,3,1,3,2,1,1,3,2,3,2,1,2,1,2,2,3,1,3,3,2,2,2,3,2,2,2,1,3,2,1,1,3,3,3,2,3,1,1,1,2,2,3,2,2,3,2,1,3,1,3,3,1,1,2,1,3,3,2,2,3,2,3,2,2,1,2,1,2,2,2,3,1,3,2,1,1,3,3,1,2,1,2,3,3,1,2,1,2,1,2,3,2,3,2,2,2,1,2,1,2,2,3,2,1,3,2,1,3,3,1,2,2,3,1,2,1,1,2,2,1,1,2,3,3,3,3,1,1,1,3,1,3,3,3,1,3,2,3,1,3,1,1,1,3,2,2,2,3,2,3,3,2,1,1,2,3,1,3,1,3,3,2,1,2,3,1,3,1,2,3,3,1,2,2,2,3,2,3,2,3,1,2,2,2,2,3,1,2,2,1,3,2,3,3,1,3,1,2,2,1,2,1,1,1,2,1,1,3,1,3,3,2,3,3,1,3,1,2,3,3,3,1,2,2,1,2,1,2,3,2,3,2,1,2,1,1,3,3,2,1,1,2,3,3,1,1,3,2,2,3,1,2,3,2,2,1,2,3,1,1,1,2,2,3,2,3,3,3,2,1,1,3,1,3,2,3,1,3,3,1,2,1,1,2,3,3,2,1,2,3,2,2,1,1,1,3,3,3,3,2,1,3,3,1,1,2,2,1,1,3,1,2,3,2,1,3,3,3,1,1,2,2,3,3,3,3,1,2,2,2,2,1,1,3,1,2,1,2,2,2,3,3,1,3,2,1,2,1,2,1,1,1,3,3,2,3,3,3,3,1,3,1,3,2,3,1,3,3,1,3,2,3,1,1,3,3,1,2,3,2,1,1,1,3,3,2,3,1,3,1,1,3,3,2,2,1,2,2,3,2,3,3,3,2,1,1,2,3,3,1,2,1,3,2,3,1,3,1,2,2,2,2,1,1,2,1,1,3,2,3,1,2,1,3,3,1,1,2,2,2,2,1,3,2,2,3,3,3,3,1,3,1,1,2,2,1,1,1,3,3,1,3,1,3,1,1,1,2,3,2,3,3,2,3,3,2,2,2,3,2,1,3,1,2,3,1,1,3,3,2,2,3,2,3,2,2,2,1,2,2,2,2,2,1,3,2,1,2,1,2,3,2,1,1,3,1,1,2,2,2,3,2,1,1,3,2,2,2,2,3,2,2,3,2,3,1,3,2,1,3,1,2,2,3,2,1,3,1,2,1,1,1,3,3,3,1,2,1,3,3,2,3,1,3,3,1,1,1,3,2,3,3,3,1,2,1,1,1,2,3,2,2,2,3,1,1,2,3,2,1,1,1,2,1,1,3,1,3,2,3,2,1,2,3,2,1,1,3,1,3,3,2,2,2,3,1,3,2,2,3,3,3,2,3,2,2,3,3,2,3,3,3,2,3,1,1,2,2,3,3,2,2,3,2,3,2,2,1,2,1,2,1,2,1,3,1,2,1,1,2,2,3,2,1,2,2,3,3,1,2,3,2,2,3,2,1,1,2,1,3,1,2,3,1,1,3,3,3,3,1,3,3,2,2,2,1,2,3,3,1,3,3,1,1,3,1,2,1,3,3,2,1,2,1,1,2,1,2,3,1,3,2,1,2,2,1,2,3,1,1,3,1,3,3,2,1,2,3,1,3,2,3,3,2,3,1,1,3,3,1,3,2,1,1,2,3,3,3,3,2,3,1,2,2,2,2,2,2,2,2,1,2,2,2,2,3,3,3,3,2,2,1,2,1,1,3,1,2,1,2,1,2,1,2,1,2,3,3,1,3,2,3,2,1,1,2,3,2,1,2,2,1,2,1,1,3,3,2,1,1,2,3,3,2,2,3,2,1,3,3,1,2,1,3,3,3,2,1,3,1,1,2,2,3,2,1,1,2,2,2,1,2,1,3,3,2,2,2,2,2,3,1,2,1,1,1,1,1,3,3,3,1,3,3,3,1,3,2,3,3,2,1,1,2,3,1,1,2,1,3,2,2,2,1,1,2,2,2,2,1,3,2,3,2,3,3,3,2,3,3,3,2,3,3,2,2,1,1,3,1,1,2,3,2,3,1,1,3,1,3,1,3,2,3,1,2,3,3,3,3,1,3,2,1,1,1,1,1,2,1,2,3,3,2,2,3,3,1,3,1,3,3,1,3,1,2,2,3,3,3,2,1,3,2,1,1,3,3,3,3,3,1,2,1,1,2,3,1,3,3,2,1,3,1,2,1,3,3,3,3,3,2,1,2,1,2,2,1,3,3,2,1,2,3,2,2,1,1,1,1,2,1,3,2,3,2,3,3,3,1,1,3,1,2,1,2,1,2,2,3,1,2,2,1,3,2,1,1,1,1,1,1,2,3,2,2,2,3,3,2,1,1,3,3,3,3,1,1,1,1,2,2,1,1,3,2,2,2,3,2,2,3,2,1,3,1,3,3,1,3,3,3,3,1,3,3,3,1,1,1,1,1,1,1,3,2,3,1,2,2,3,3,1,3,3,2,2,3,2,1,3,2,2,2,1,2,2,2,3,3,3,1,2,1,1,1,2,2,1,1,2,1,1,2,2,3,2,2,3,3,1,1,1,3,3,2,2,3,3,3,2,1,3,1,1,3,3,2,2,2,1,3,3,1,3,1,1,3,3,2,3,2,1,2,2,1,3,3,1,1,2,1,2,2,3,3,1,3,3,3,1,1,2,2,3,1,1,3,3,2,2,2,1,3,2,1,3,2,1,3,1,2,3,2,2,2,1,3,3,2,3,1,1,2,3,3,2,3,2,2,3,3,3,2,2,1,2,1,1,3,1,2,3,1,1,1,2,2,3,2,1,3,3,3,2,2,3,3,2,3,3,3,3,1,1,2,1,2,1,2,2,1,2,3,1,1,1,3,2,1,2,2,1,3,3,2,2,3,1,2,3,3,3,3,3,1,3,2,3,3,3,3,2,3,3,1,2,3,1,3,1,3,3,1,2,1,1,2,3,2,1,2,3,2,3,1,2,3,3,1,2,3,3,2,1,1,2,2,3,1,2,1,1,3,2,1,2,1,3,2,3,2,2,3,2,3,3,1,1,3,1,2,3,1,1,2,3,1,3,1,2,1,1,2,1,1,1,2,1,3,1,2,2,2,1,2,1,1,1,3,3,3,1,3,1,2,2,2,2,2,1,3,1,3,2,2,2,3,2,1,2,3,1,1,1,1,3,1,1,1,3,1,1,1,1,2,1,1,3,1,1,1,3,1,3,1,2,1,3,3,3,3,1,2,1,2,1,3,1,2,3,1,1,3,3,3,3,3,2,3,3,2,1,3,3,3,2,3,3,1,2,1,1,1,3,2,1,3,2,3,3,3,3,2,1,1,3,2,3,2,3,3,1,1,2,1,1,2,2,2,3,3,3,2,2,3,2,2,3,2,2,1,1,3,1,1,3,1,3,2,2,2,1,2,2,2,2,2,1,2,3,1,2,3,2,3,1,3,2,1,1,1,3,1,3,1,1,2,2,2,2,2,2,1,1,2,2,1,3,2,1,2,2,3,3,1,3,3,3,3,1,2,1,3,1,1,2,1,3,2,3,2,2,1,1,2,3,1,3,3,3,1,2,3,2,2,3,1,3,1,1,2,3,3,3,1,1,1,1,2,1,3,1,2,1,3,1,3,2,3,1,2,2,1,1,3,1,1,1,3,2,1,3,3,2,3,2,2,2,3,3,1,3,2,1,2,3,1,1,2,3,3,1,3,3,2,1,1,3,1,2,3,1,3,3,3,1,1,2,3,2,2,1,2,1,2,2,1,3,3,2,2,1,3,2,1,3,1,1,3,2,2,1,2,3,2,2,2,3,1,3,1,1,2,1,1,1,3,2,3,2,1,2,2,2,1,3,1,2,3,1,3,2,2,1,2,3,2,3,3,1,3,2,3,1,2,1,1,1,2,2,3,3,2,3,3,3,1,2,2,2,1,1,1,1,2,3,1,2,3,1,2,1,1,1,2,3,3,3,2,2,3,1,2,3,3,3,2,2,1,1,2,3,2,2,1,2,1,1,3,1,2,1,2,2,2,3,1,1,3,2,3,3,2,2,3,1,2,3,2,2,2,3,3,2,3,2,2,1,3,3,1,2,1,3,1,2,1,2,3,1,3,2,3,1,3,3,3,2,3,2,3,3,1,1,3,2,1,2,1,3,2,1,3,1,3,2,2,3,1,1,3,2,1,1,3,2,3,3,2,1,3,1,1,3,2,1,2,2,2,2,1,1,2,2,2,2,2,1,3,1,3,3,3,3,1,1,3,1,1,3,2,2,2,2,2,1,3,3,1,3,2,1,3,3,3,3,2,1,2,2,1,1,2,2,3,1,2,3,3,2,1,1,3,2,3,2,1,1,1,3,1,1,1,2,1,1,1,2,3,1,1,1,2,2,1,1,3,1,2,3,3,2,2,1,1,2,2,1,1,1,2,1,3,1,1,2,2,3,3,2,1,1,1,2,3,3,3,3,1,3,3,1,2,1,1,1,3,3,2,3,3,3,3,2,1,3,2,1,1,2,3,3,3,3,3,3,1,1,3,2,1,2,1,2,1,3,3,2,3,2,2,1,3,3,2,3,2,2,2,2,1,2,1,3,1,1,2,3,2,2,2,1,1,3,3,3,3,1,2,3,1,1,1,1,3,3,2,1,1,1,2,2,3,2,2,1,1,2,3,3,2,2,2,2,2,3,1,1,3,1,3,3,2,1,1,1,2,1,1,1,3,1,3,3,2,2,3,1,2,1,3,2,2,3,2,2,2,3,1,2,1,1,3,3,2,2,1,3,1,3,3,1,1,1,2,3,1,1,1,2,3,2,2,2,1,3,2,1,2,3,1,1,1,2,2,2,3,2,2,3,3,2,3,1,1,2,1,3,2,1,2,1,1,3,2,3,2,3,2,3,3,3,3,1,2,2,1,3,1,1,3,3,2,1,2,3,3,3,2,2,3,3,3,3,2,1,3,2,3,3,3,3,3,2,2,2,2,1,3,1,2,1,3,2,1,2,1,1,2,2,1,2,1,3,1,3,1,2,1,3,1,2,3,1,1,3,1,1,3,2,1,2,1,2,2,1,3,1,2,1,1,1,2,3,1,1,3,1,1,1,3,2,2,3,2,1,2,3,2,2,3,3,3,3,1,3,1,2,2,2,3,1,2,3,3,1,2,3,2,1,1,2,1,3,1,3,1,2,3,1,2,1,3,1,3,1,2,1,3,2,2,1,2,2,2,1,2,3,1,2,1,1,2,1,3,2,2,1,1,2,1,3,3,3,1,3,1,1,3,1,2,2,1,3,1,1,3,3,2,1,1,1,2,3,1,3,2,2,2,3,3,2,2,1,1,1,1,3,3,1,2,3,3,1,2,3,3,3,3,2,2,3,3,3,3,3,2,2,3,2,1,2,3,3,1,1,1,1,1,3,1,3,1,3,1,3,2,2,1,2,3,2,2,2,3,2,1,3,3,2,1,1,3,2,3,2,3,2,3,1,1,2,1,1,2,1,2,2,3,1,3,1,1,3,3,2,1,1,1,2,2,2,1,2,3,2,3,2,1,1,3,2,1,1,2,1,3,3,1,3,1,1,2,1,3,3,1,1,2,2,2,2,3,1,1,3,1,1,1,1,1,1,3,1,1,2,1,3,1,1,3,1,1,2,1,2,1,1,3,1,1,2,2,3,3,1,3,2,2,3,1,2,2,1,2,2,3,2,2,3,1,2,2,1,2,2,3,3,1,3,3,2,2,2,2,1,3,3,3,1,2,3,2,2,3,1,1,1,2,3,1,1,1,2,1,1,2,3,2,2,3,3,3,2,2,1,2,1,3,1,3,3,2,1,2,2,3,3,3,2,2,2,1,3,2,2,2,3,3,1,1,3,2,2,1,3,1,2,2,2,1,2,3,3,2,1,2,3,3,2,2,2,3,3,3,2,2,2,1,3,2,2,2,1,2,2,2,2,3,2,1,2,1,2,2,3,3,1,3,2,2,2,2,3,2,1,3,3,2,2,1,1,3,2,3,1,1,1,1,3,2,2,3,3,1,2,3,2,3,2,3,2,3,3,2,2,2,1,1,2,2,3,1,3,1,2,2,2,3,3,3,1,2,1,1,3,2,2,1,1,1,1,3,1,2,3,1,3,2,3,2,3,2,1,3,1,2,3,3,1,3,2,3,2,2,1,1,2,3,2,1,3,3,3,2,3,3,1,1,2,1,2,3,1,3,3,1,3,2,2,3,1,3,3,1,1,1,3,1,3,3,1,3,1,2,2,2,3,3,1,3,2,3,2,1,1,2,1,2,1,3,3,3,2,1,3,1,3,1,2,2,2,2,3,2,1,1,1,3,3,2,1,3,2,1,2,2,1,3,2,1,2,2,1,3,1,1,1,2,1,3,3,1,1,3,2,3,3,3,1,1,1,2,1,2,2,1,2,2,3,2,1,3,1,2,1,1,2,1,2,1,1,1,2,3,1,1,3,1,3,1,3,1,1,3,2,1,1,3,2,2,1,2,3,3,1,2,3,3,2,1,3,1,1,1,2,2,3,2,3,1,2,2,2,3,3,3,1,3,2,3,3,3,2,2,2,3,2,2,2,3,3,2,2,3,3,3,2,1,1,2,2,3,3,2,3,2,1,2,2,3,3,1,1,3,3,3,1,2,2,2,1,3,1,1,3,2,3,3,2,2,3,1,2,3,2,1,2,2,3,2,2,1,3,1,1,1,1,2,2,3,2,3,3,2,3,2,3,2,1,1,1,3,1,1,1,2,2,3,2,3,3,1,3,1,1,2,1,1,1,1,2,3,2,3,1,2,2,1,3,3,2,2,2,3,2,3,1,1,1,1,1,2,2,2,2,2,2,3,2,3,2,3,3,2,3,2,2,2,1,3,1,3,3,1,3,1,3,2,3,1,1,1,2,1,1,1,1,2,1,1,2,2,3,3,2,2,3,1,2,2,1,1,1,2,3,2,2,2,3,3,3,2,1,3,2,2,3,3,1,2,2,3,2,2,1,2,1,1,2,1,3,1,3,2,3,2,1,2,3,1,2,1,2,1,1,1,1,2,1,3,2,3,2,1,1,2,3,3,2,1,1,1,2,1,2,3,1,2,3,3,3,3,2,2,1,1,3,2,1,3,1,2,1,1,1,3,3,1,3,3,2,2,1,1,1,2,3,3,3,2,1,2,3,1,1,3,1,3,1,2,2,1,2,3,2,2,1,2,3,2,1,3,3,3,2,2,2,3,3,2,2,3,1,1,2,2,3,2,3,2,2,2,2,3,1,2,1,3,2,1,1,2,2,3,3,2,2,2,3,2,1,3,3,3,1,2,3,3,1,1,3,3,3,1,3,3,1,3,1,2,2,2,1,3,3,3,2,2,2,2,3,2,2,3,3,2,2,2,3,2,2,2,2,3,2,2,1,1,3,2,1,1,3,3,3,1,3,3,2,1,1,2,2,3,2,3,3,1,3,3,1,1,1,3,1,3,1,2,3,3,2,2,3,3,2,2,3,1,1,1,2,3,1,2,3,3,3,2,2,3,1,1,1,2,1,2,3,1,1,2,3,1,2,2,3,2,2,3,2,2,2,1,3,1,3,1,1,2,1,2,1,1,2,2,3,3,2,3,3,3,2,2,3,2,2,1,3,2,3,3,1,2,1,3,1,2,1,3,3,1,1,3,3,1,3,3,3,1,2,1,3,1,1,2,3,2,2,2,3,2,1,2,1,3,2,2,1,3,3,2,2,1,2,2,1,2,2,1,1,2,3,2,3,2,3,3,2,2,1,3,3,2,1,3,1,3,3,2,1,2,2,2,2,1,3,2,2,1,2,3,1,1,3,3,2,3,1,3,1,3,2,2,2,3,2,1,3,3,3,2,3,3,3,1,3,1,3,2,2,1,2,3,3,2,3,2,2,2,2,1,2,2,2,3,2,3,1,1,1,1,2,2,3,1,1,1,3,3,3,1,3,2,1,2,2,1,3,3,3,2,1,2,1,3,3,3,2,2,3,3,1,3,2,1,1,3,3,3,3,3,2,1,3,2,2,3,1,1,1,1,2,1,1,1,2,3,1,3,1,3,1,3,1,2,2,2,1,1,3,1,2,2,2,2,3,2,2,3,1,3,2,2,3,2,2,1,3,1,2,3,3,1,1,2,3,2,3,1,3,1,2,1,3,3,3,2,2,2,3,2,3,3,2,1,3,2,3,2,3,2,3,3,1,1,1,2,1,1,3,1,2,3,2,2,2,2,3,3,2,3,2,1,2,3,1,2,1,3,1,1,2,3,1,2,2,3,1,1,2,2,3,2,1,3,2,1,2,2,3,1,3,2,2,1,1,3,3,2,2,2,1,2,2,2,1,2,2,3,1,2,1,2,3,2,2,3,3,3,2,2,1,3,1,2,2,1,2,3,1,2,2,3,1,1,2,2,1,3,3,1,1,1,3,1,2,3,2,2,3,3,1,3,1,2,1,2,2,2,2,3,2,1,3,1,1,2,3,3,3,3,3,1,2,1,2,3,2,1,2,3,1,1,1,3,1,3,3,3,2,3,3,3,3,2,2,3,3,3,3,2,3,2,1,3,3,3,1,3,3,3,3,2,2,2,2,3,2,3,1,1,2,1,2,3,2,2,1,1,2,1,3,2,1,1,2,2,2,2,1,2,1,2,3,1,3,3,1,3,3,2,3,3,1,3,1,3,2,3,1,1,1,1,2,2,2,2,3,2,2,1,2,2,1,2,3,1,1,3,3,3,2,1,3,3,2,2,1,3,2,2,1,1,1,1,3,3,2,2,2,3,2,2,3,3,3,3,1,3,3,1,1,3,2,2,3,1,3,1,2,3,3,2,3,3,3,3,2,1,2,3,1,2,2,3,2,1,2,2,3,3,1,3,1,3,2,3,1,1,3,2,3,3,3,3,2,3,2,2,3,3,2,2,1,3,3,2,1,3,3,1,3,2,2,1,3,1,1,3,3,1,2,2,3,1,2,2,1,3,2,3,2,3,2,2,1,2,1,3,2,3,3,3,2,1,3,1,3,2,3,1,2,2,2,1,3,1,2,3,1,3,1,2,3,2,3,2,1,2,2,1,1,1,2,3,3,2,3,3,2,2,1,1,1,2,2,3,3,2,2,2,2,2,1,1,1,1,3,3,2,3,2,3,3,2,1,1,1,3,3,2,1,3,2,2,2,3,1,3,3,2,1,3,1,1,3,2,3,1,2,2,1,3,1,3,1,2,1,2,1,3,3,3,2,1,2,1,3,2,1,3,1,2,3,2,3,2,2,2,1,2,2,2,1,2,1,1,2,3,3,1,2,3,1,2,3,3,3,3,1,2,1,3,1,1,1,1,2,3,1,1,2,1,1,2,2,1,2,2,3,2,3,3,1,2,2,1,3,3,3,3,1,1,1,2,1,3,1,1,1,1,1,1,3,3,2,2,2,1,2,3,3,3,3,2,2,2,2,2,1,1,3,2,1,2,3,3,3,3,1,3,3,2,2,2,3,1,2,1,1,3,1,1,1,2,2,2,3,3,2,2,2,2,2,3,1,2,1,1,1,2,1,1,2,1,1,3,3,1,2,3,2,2,3,2,2,1,2,3,2,1,1,3,2,1,1,2,2,2,2,2,2,1,3,3,2,1,2,1,1,1,1,3,2,3,1,2,3,2,2,2,2,2,3,2,3,3,3,1,2,2,3,3,1,3,1,3,2,3,3,1,1,3,1,1,2,3,2,2,3,2,3,2,3,1,3,1,2,2,2,1,3,3,3,1,1,2,2,1,3,3,2,2,1,2,2,3,1,2,2,2,2,3,3,3,3,1,1,3,3,2,1,2,3,3,1,3,1,3,3,3,2,1,3,3,2,2,2,2,1,1,1,1,2,3,3,2,1,3,2,2,3,3,1,2,1,3,3,3,2,2,3,2,3,1,3,1,2,3,1,2,1,1,2,2,2,1,1,1,1,2,1,3,1,2,1,1,3,3,2,3,2,2,1,1,2,3,2,2,3,1,3,3,2,2,2,2,3,3,2,1,3,2,1,2,1,2,3,1,3,3,2,1,2,3,3,2,2,2,3,1,3,3,2,1,1,3,1,3,2,2,2,1,2,3,1,2,2,3,3,1,3,2,1,2,3,2,3,1,1,3,3,1,2,1,3,1,2,3,2,1,2,3,2,1,1,1,1,3,1,2,3,2,3,2,3,1,3,3,1,2,3,3,3,1,1,1,3,1,1,2,1,1,3,1,1,2,1,2,1,2,1,2,2,3,3,3,1,1,3,2,2,3,1,1,3,1,1,3,2,1,2,1,3,3,2,3,1,2,1,1,3,1,1,1,2,3,2,1,2,1,2,2,1,3,3,3,1,1,2,3,1,1,3,2,3,2,1,1,2,1,2,2,1,3,1,3,1,3,3,2,3,3,3,1,2,3,1,1,3,2,2,3,3,3,1,1,1,2,2,2,1,3,3,3,2,3,2,2,2,2,1,2,2,3,1,1,1,1,2,1,3,1,1,1,1,1,1,2,1,3,3,2,1,3,3,2,2,1,3,1,3,3,3,3,1,1,3,3,1,2,3,2,1,1,2,1,2,3,2,2,3,3,1,1,3,1,2,3,2,2,3,3,2,1,1,3,3,2,3,1,3,2,1,2,3,1,1,2,2,2,2,3,2,1,3,2,1,3,1,1,1,3,2,1,1,1,1,1,2,2,2,1,3,1,3,3,1,1,1,3,3,2,3,3,1,3,1,1,2,3,1,1,2,1,1,1,2,3,3,2,1,2,3,1,1,1,3,2,1,2,2,3,1,2,3,2,1,3,2,2,3,2,2,2,2,3,1,3,3,2,3,1,3,2,1,3,1,3,1,2,1,2,1,2,2,1,3,2,2,2,1,1,1,3,1,2,3,3,1,2,3,3,1,1,1,2,3,1,2,2,1,2,1,1,2,3,3,3,3,3,3,3,3,3,3,2,1,1,2,3,2,2,1,3,3,3,2,1,3,3,1,2,1,3,1,2,1,1,1,2,3,3,2,3,3,1,2,1,3,3,1,3,2,1,2,1,2,2,1,1,1,3,1,2,2,1,1,1,1,3,1,2,3,2,1,1,1,2,2,2,2,2,3,3,2,3,1,1,2,1,2,3,1,3,1,2,2,1,1,2,1,3,1,3,3,2,1,2,1,2,2,3,3,2,2,2,2,2,3,1,1,1,2,2,1,3,1,2,1,3,2,1,1,3,1,1,1,1,3,2,1,1,2,3,3,1,1,2,2,1,3,3,2,2,2,1,1,2,1,2,2,1,2,3,1,3,3,3,1,3,1,2,3,3,2,3,3,2,1,1,1,2,3,1,3,2,3,1,2,1,3,2,2,3,2,2,2,1,3,2,3,3,3,1,1,2,1,1,3,3,2,3,1,1,3,3,1,1,2,3,3,1,2,3,3,2,1,2,1,2,3,1,3,1,1,3,1,2,3,3,2,3,1,3,3,3,3,2,3,2,1,1,2,3,1,3,2,2,3,3,2,2,2,1,1,3,1,3,3,3,3,3,3,3,1,3,3,3,3,1,1,2,2,2,3,2,1,2,3,2,3,3,3,1,2,3,2,1,2,1,3,2,2,2,1,2,1,2,1,3,2,2,2,3,1,3,1,2,3,1,2,2,3,2,3,3,1,3,3,2,1,3,3,1,1,1,1,2,3,1,1,2,3,3,3,1,1,1,2,2,3,1,3,1,1,1,3,2,1,3,2,3,2,1,1,3,2,3,3,3,2,3,3,2,1,1,2,1,3,2,1,3,1,2,2,1,1,1,1,3,1,1,2,1,1,3,2,3,3,2,3,1,1,2,3,1,2,3,3,1,3,1,1,2,1,3,2,3,1,1,2,1,1,1,2,2,3,1,3,2,3,1,2,2,3,1,1,1,1,1,3,2,3,2,2,2,1,1,2,1,2,3,1,3,2,1,1,2,3,2,2,2,3,2,1,1,2,2,2,1,3,1,1,3,3,1,3,1,3,2,3,2,2,2,1,2,2,1,1,1,1,1,1,2,2,3,3,2,1,3,3,3,3,2,2,1,3,1,3,1,3,1,2,2,2,2,2,1,2,2,2,3,3,1,1,3,3,2,2,2,3,1,2,1,3,3,2,2,1,2,3,3,1,3,2,3,2,1,3,1,2,3,2,3,1,2,1,1,1,2,1,2,3,2,2,1,3,1,2,1,3,3,3,2,1,3,2,3,3,2,3,3,2,3,1,1,3,2,3,3,2,3,2,3,3,1,3,3,2,3,3,2,2,1,3,2,2,1,3,3,2,3,2,3,1,3,2,1,2,3,1,3,1,3,1,1,2,2,3,1,3,3,2,3,2,1,2,1,1,3,3,2,1,2,2,3,2,2,1,1,1,3,2,2,3,2,1,1,3,2,1,1,1,2,2,2,3,2,3,3,2,3,1,2,3,3,1,3,1,1,1,2,2,2,1,2,1,3,1,2,2,3,1,3,2,1,1,3,2,1,2,1,2,2,1,2,1,1,3,1,1,2,3,2,2,2,3,1,1,3,1,1,2,1,2,3,1,3,2,1,1,2,1,2,3,1,3,1,3,1,2,2,1,2,1,2,3,2,3,1,1,2,3,3,3,2,2,3,1,3,3,1,1,3,3,3,2,2,2,2,3,1,2,3,1,3,2,3,2,3,3,1,1,2,2,2,2,2,1,2,2,3,1,1,2,2,1,1,1,2,1,1,2,3,1,3,1,2,1,1,2,2,3,1,3,3,2,2,3,2,1,1,3,1,2,1,1,1,1,2,1,3,3,3,2,3,3,2,1,2,1,2,3,3,1,2,3,3,1,3,3,1,2,1,1,1,2,1,2,3,1,2,2,3,1,2,3,2,1,3,2,3,1,2,1,2,2,1,1,3,2,1,3,2,3,3,2,1,2,2,3,1,3,1,2,3,2,2,2,1,2,2,1,2,1,1,2,1,1,1,3,2,2,3,3,3,3,1,2,2,2,2,1,2,2,1,1,1,3,2,2,1,2,3,3,1,1,2,2,2,2,3,1,1,3,2,3,1,2,2,3,1,2,3,3,2,3,2,1,3,3,1,2,3,2,2,2,1,1,2,3,3,3,2,1,2,2,3,3,1,3,3,3,2,2,3,1,1,2,1,1,1,1,3,1,2,3,3,3,3,2,2,2,2,1,1,2,3,1,3,3,3,2,2,1,3,3,1,3,1,1,1,3,3,1,2,3,1,2,2,3,3,3,1,3,1,1,2,3,2,3,3,1,2,3,3,3,3,1,2,2,3,2,3,1,1,1,3,3,3,3,2,3,2,3,3,1,2,3,1,2,3,3,3,3,1,3,2,1,3,1,3,1,3,3,1,1,2,3,3,2,3,2,2,1,2,2,2,3,2,3,1,1,3,3,2,2,2,3,2,1,3,3,2,2,1,3,3,3,3,1,2,1,3,1,2,1,3,2,2,2,2,1,1,3,1,1,3,1,1,1,3,1,1,2,2,3,1,3,1,1,2,1,3,2,1,2,1,2,3,3,3,2,3,3,2,1,1,1,3,1,1,1,2,3,1,2,2,2,1,1,2,2,3,2,3,1,1,1,3,2,2,1,3,2,3,3,1,1,2,3,2,1,2,3,2,3,3,2,1,2,3,1,2,3,1,3,2,1,1,2,3,2,2,3,1,3,2,1,1,2,3,3,1,3,3,1,3,2,2,1,2,3,1,2,2,1,2,1,3,1,2,1,1,1,2,1,2,2,3,2,2,1,3,1,1,2,3,2,1,1,3,1,3,2,1,2,3,1,3,2,1,2,3,1,2,2,2,3,3,3,2,2,1,3,3,3,3,3,2,3,3,2,2,1,1,1,3,1,3,1,3,1,3,3,3,1,1,3,2,2,2,2,3,1,3,3,2,1,2,3,1,1,2,3,2,2,3,2,1,2,3,1,1,1,3,2,1,3,3,2,3,3,3,2,1,1,1,3,1,2,1,2,1,2,2,3,3,1,3,2,2,3,1,3,1,2,1,1,2,1,3,1,2,3,1,2,2,2,3,3,2,2,1,3,3,3,2,3,2,3,3,1,1,3,3,2,3,2,2,1,2,1,2,1,2,1,2,3,3,1,2,1,3,3,2,2,3,2,1,2,1,2,3,2,3,3,1,1,2,1,3,2,3,3,1,2,2,1,1,1,1,3,2,3,3,2,2,1,1,1,3,3,2,3,2,1,2,2,2,3,2,2,3,2,1,2,3,1,3,3,3,2,2,2,2,1,1,3,1,3,3,2,3,1,3,1,1,1,1,3,2,1,2,1,1,3,3,2,1,3,3,1,1,1,1,2,2,1,1,3,3,2,2,3,2,3,3,3,2,2,1,3,2,3,1,2,1,1,2,1,1,3,2,2,3,3,1,1,1,2,2,3,2,3,3,3,2,2,3,1,3,1,2,2,3,2,1,1,3,2,1,3,3,3,2,3,3,2,1,2,2,1,2,1,1,1,1,3,1,2,3,3,3,3,1,2,1,2,2,2,3,1,1,1,2,1,3,2,3,2,1,3,3,2,2,3,3,1,3,2,2,2,1,1,1,2,2,1,1,2,2,2,3,3,3,1,3,2,2,2,3,2,1,2,1,3,1,3,3,3,2,1,3,1,1,3,3,1,2,2,2,2,3,2,3,3,2,1,3,1,2,3,3,1,2,1,2,1,2,1,2,2,3,1,1,3,1,2,2,3,1,2,2,1,3,3,1,1,3,2,3,2,1,1,1,2,3,1,2,1,3,3,3,2,2,2,1,3,2,3,2,3,3,3,3,3,2,3,1,1,3,2,1,2,2,3,2,1,3,1,1,3,2,2,1,1,3,1,2,1,1,3,3,1,3,2,3,3,2,3,1,1,3,2,1,3,2,1,2,2,1,1,2,3,2,2,3,2,2,1,3,3,3,3,2,1,2,3,1,3,3,3,3,1,3,2,2,2,1,2,2,2,3,2,3,2,2,3,2,2,3,3,3,2,1,2,3,3,2,3,1,2,1,2,2,2,3,2,3,2,2,3,1,2,1,1,1,1,3,1,1,1,3,1,1,3,3,1,2,3,1,3,2,1,2,1,3,1,3,3,3,3,3,1,3,3,2,3,3,2,1,2,2,1,2,1,1,3,1,3,2,1,1,1,3,1,3,3,2,3,1,3,3,2,1,2,2,3,3,3,1,3,2,2,2,3,2,2,1,2,3,2,3,1,1,1,2,1,2,3,3,2,3,2,3,1,1,2,1,2,2,1,1,1,2,3,1,2,1,2,1,3,3,3,1,2,1,3,1,1,3,1,3,1,1,2,3,3,2,3,3,3,3,2,3,1,2,2,2,1,2,1,2,1,3,2,2,2,1,2,1,1,1,2,1,2,3,3,2,3,3,1,3,1,1,2,2,2,1,3,2,3,3,1,1,3,1,3,1,2,3,2,3,1,2,1,3,1,2,3,2,2,2,2,1,2,2,3,1,2,3,2,2,2,2,2,2,1,3,1,3,2,2,3,1,2,3,2,2,3,2,2,3,3,3,2,1,1,3,3,1,1,1,2,2,1,2,2,2,1,1,3,3,3,1,1,3,1,3,1,3,2,2,2,3,2,3,1,2,3,2,3,2,1,1,2,1,2,1,3,3,1,2,3,3,1,1,2,1,3,2,1,2,2,3,1,1,1,2,2,1,1,2,3,1,2,2,1,2,1,2,3,2,2,2,1,2,2,3,2,3,3,3,2,2,2,1,2,3,1,1,1,3,3,2,1,3,1,3,1,1,1,1,3,1,1,2,1,1,1,2,1,1,3,1,1,1,1,3,1,3,2,3,2,3,1,3,3,1,1,1,1,2,3,3,2,1,2,1,1,1,3,2,1,2,1,3,1,3,3,2,3,1,2,1,3,2,1,1,2,1,2,1,2,1,3,2,3,1,1,1,1,1,1,3,3,1,1,2,1,2,2,2,1,3,3,3,3,1,2,2,2,1,3,3,3,1,1,3,1,2,3,2,3,2,1,3,1,3,1,2,2,1,3,2,2,3,3,1,3,2,1,3,2,1,3,2,3,2,3,1,1,3,1,1,2,1,3,1,1,2,2,2,1,1,3,1,3,2,3,1,2,1,1,1,1,3,1,1,1,3,2,2,3,1,2,3,2,2,3,2,2,3,1,1,2,3,3,2,3,2,2,3,2,2,1,3,1,2,3,1,3,1,3,3,3,1,3,1,3,1,3,2,1,3,2,1,3,3,1,2,3,3,1,1,1,3,1,3,3,1,3,3,1,2,2,3,1,2,3,3,3,2,1,2,1,3,2,2,3,1,2,3,3,2,3,2,3,1,2,1,1,3,2,2,3,3,2,1,3,1,1,2,1,2,2,3,3,3,2,1,3,2,1,3,1,1,2,3,1,2,2,1,3,1,3,2,1,3,3,1,2,2,2,2,3,3,3,2,2,3,2,2,3,2,1,3,3,1,2,2,1,1,2,3,1,1,2,1,1,2,3,1,3,1,1,1,2,1,3,2,1,3,1,2,1,1,1,1,2,1,3,1,3,1,2,2,2,3,1,2,2,1,2,2,3,2,3,2,2,1,3,2,3,3,1,1,2,3,2,1,2,1,3,2,1,1,3,3,1,3,1,3,1,1,1,3,1,1,2,2,2,3,3,1,2,3,2,2,3,3,3,2,2,2,2,3,1,3,2,1,2,3,1,2,1,1,2,1,3,2,1,3,2,2,1,3,1,3,1,2,2,2,2,1,2,2,3,3,2,2,3,3,3,2,3,1,1,2,3,1,2,1,2,1,2,3,3,2,3,3,2,1,1,1,3,1,2,1,2,2,3,2,1,1,2,2,2,1,3,3,2,2,3,2,1,1,1,1,2,2,3,1,3,3,3,2,2,1,1,1,3,3,3,2,3,1,3,2,3,2,3,2,2,1,2,2,1,3,3,1,3,1,1,3,1,1,1,3,1,3,2,1,2,1,2,2,3,2,3,3,2,2,2,2,1,2,3,3,1,3,3,1,3,1,2,1,3,2,1,1,2,2,3,2,1,1,2,3,1,3,1,2,1,1,2,1,3,3,2,3,1,3,1,3,2,2,2,2,1,3,1,3,2,2,2,1,1,3,3,1,3,3,3,1,2,1,2,2,2,3,2,2,1,2,3,3,1,1,3,2,1,3,3,3,3,1,2,2,1,2,3,2,2,3,3,3,3,2,1,3,2,2,2,2,3,3,2,1,2,3,3,2,3,2,3,2,1,2,1,3,3,3,2,3,3,2,3,3,2,1,1,2,2,2,1,2,2,3,2,1,2,2,2,3,1,3,3,3,2,1,1,2,2,3,1,2,3,2,3,1,2,1,1,2,2,3,1,1,1,2,3,2,3,1,2,3,1,3,2,1,3,1,2,3,3,2,3,1,1,2,2,2,3,1,1,2,2,1,2,2,2,1,2,3,1,1,3,1,3,2,3,2,3,2,3,1,1,2,2,3,1,3,2,2,1,3,3,1,2,1,1,3,2,2,3,2,2,3,3,2,2,1,2,3,2,2,2,3,2,2,1,2,2,1,2,3,1,1,2,1,2,2,1,3,1,3,1,1,1,2,3,1,1,2,3,3,2,2,2,3,2,2,3,2,2,1,1,1,2,2,1,1,1,3,3,2,2,3,1,3,1,1,2,1,2,2,3,2,2,3,3,3,3,1,1,3,1,1,1,2,3,3,3,1,2,3,1,2,1,2,2,2,1,1,3,1,2,1,1,2,2,1,1,1,2,2,3,3,2,2,3,3,1,2,3,1,1,2,1,2,2,2,2,1,1,1,1,2,2,2,2,3,3,1,3,1,3,2,3,2,1,3,1,1,1,1,3,1,3,1,2,2,3,1,3,3,2,3,1,2,2,2,2,2,2,1,1,2,1,3,2,3,1,2,2,1,2,2,2,3,3,1,1,1,1,1,3,2,3,1,1,1,3,2,1,2,1,3,3,1,3,3,1,3,3,2,3,2,1,1,3,1,2,3,2,1,1,2,1,1,2,3,1,2,3,3,3,3,1,2,3,1,3,3,1,3,3,2,3,2,1,1,2,2,3,3,3,2,3,3,1,2,3,2,2,2,3,2,1,2,3,2,2,2,3,1,1,1,2,3,2,3,1,3,1,2,3,2,1,3,3,2,2,3,2,2,2,1,1,2,1,1,2,3,2,3,2,3,2,3,3,3,2,1,3,3,3,1,3,2,2,2,2,2,1,3,1,3,3,3,1,1,2,3,3,1,3,1,1,3,3,3,3,1,3,1,2,1,2,1,2,3,3,1,2,2,1,1,2,2,2,2,2,2,1,2,2,3,3,1,3,1,1,1,1,2,3,3,2,1,1,1,3,1,3,1,3,2,2,1,2,3,1,1,3,3,2,1,3,1,1,3,2,3,1,1,2,2,1,2,2,2,1,3,3,3,2,3,3,2,3,1,2,1,1,3,2,2,1,1,1,3,1,1,1,2,3,2,1,3,3,2,3,3,2,1,1,3,2,2,1,2,1,3,3,1,2,2,3,3,2,2,3,3,1,3,2,1,2,2,3,1,1,1,3,2,3,3,3,1,3,3,2,1,3,2,1,1,1,2,1,2,1,3,2,1,2,3,1,1,2,2,2,2,2,3,3,3,3,1,3,1,1,3,1,3,1,3,3,2,2,2,2,1,2,1,3,1,1,3,1,3,2,2,1,1,1,1,3,1,1,1,1,2,1,1,1,1,1,1,3,1,3,3,2,2,2,2,3,2,3,1,1,1,1,3,2,1,1,2,1,1,3,1,3,3,1,3,1,3,1,3,2,2,2,1,2,2,3,3,3,1,1,2,2,1,1,2,3,3,2,1,1,1,1,3,1,3,3,3,1,1,1,3,1,3,1,2,2,3,2,1,3,1,2,3,1,2,2,3,3,2,2,1,2,3,1,1,2,3,1,1,2,2,2,1,1,1,2,2,2,1,3,3,3,1,3,1,2,3,2,1,2,1,3,1,1,2,2,2,3,3,2,2,3,2,3,2,3,2,2,2,3,1,3,2,3,3,3,2,2,3,3,1,1,3,2,3,1,2,1,2,3,1,3,1,3,2,2,1,1,2,1,3,1,1,3,1,2,3,2,2,2,3,2,2,2,2,1,1,3,3,1,2,2,2,3,2,1,1,3,1,2,3,3,1,3,1,1,3,3,2,2,2,1,3,1,1,3,1,1,2,3,2,1,2,3,3,3,3,3,2,3,2,3,3,3,1,2,3,3,1,2,1,1,2,3,1,3,1,1,3,2,2,2,3,1,1,3,3,3,3,3,1,3,3,3,1,2,2,1,3,1,3,2,1,3,1,1,2,3,3,3,2,1,1,2,2,1,2,3,3,2,3,2,1,3,1,1,1,1,3,2,1,3,1,1,1,2,2,1,1,2,3,1,3,2,3,1,1,3,1,1,2,2,2,2,2,3,1,3,3,3,1,3,2,2,1,3,2,3,3,3,1,3,2,2,1,2,1,1,3,2,3,2,1,1,2,1,1,3,3,2,1,3,2,3,1,2,1,2,2,1,1,3,1,3,2,3,3,3,1,1,3,3,1,3,3,3,1,2,2,2,3,1,3,1,1,1,1,3,2,3,3,2,1,2,3,3,1,1,2,1,3,2,1,3,1,3,2,3,3,1,1,1,3,2,1,3,1,3,3,2,2,3,3,2,2,2,2,1,3,1,3,3,3,3,1,2,2,1,3,1,2,1,3,2,2,1,1,1,1,2,1,2,2,1,3,3,3,1,3,2,2,1,1,3,3,3,1,3,2,3,3,1,2,3,3,2,1,3,2,1,3,2,2,2,1,2,3,1,3,2,2,3,1,2,3,2,1,3,3,1,1,2,1,2,2,3,2,2,2,1,1,3,1,3,2,3,3,1,2,1,2,3,1,1,2,2,1,2,1,3,1,3,3,1,2,1,1,3,3,3,3,3,1,3,1,1,3,1,3,1,3,3,3,3,1,1,3,3,2,3,1,1,1,2,3,3,1,1,2,3,1,2,1,2,2,2,1,1,2,1,3,1,3,1,3,1,2,2,2,3,1,3,2,2,1,3,3,2,3,1,1,2,3,3,1,2,2,3,3,2,1,1,2,3,2,3,2,1,1,1,2,2,2,1,3,1,1,3,1,2,3,2,2,1,2,3,3,2,3,2,2,2,3,3,2,2,3,3,1,1,3,2,2,3,1,1,2,2,2,3,3,3,1,3,3,3,1,2,2,3,3,3,1,2,1,2,3,3,3,2,3,1,2,2,3,1,1,1,3,1,3,2,1,1,3,3,3,1,3,1,3,1,1,1,2,1,3,1,2,3,1,3,2,3,3,3,2,3,1,1,1,1,3,2,1,3,1,1,1,3,3,2,1,1,2,1,1,2,2,2,2,1,3,3,2,3,2,2,3,1,1,1,3,3,3,2,1,1,1,1,2,2,3,1,3,1,2,2,1,3,3,1,3,3,2,1,3,2,3,3,1,2,2,1,2,2,3,2,2,2,3,2,2,2,3,3,2,2,1,1,3,1,1,2,3,3,2,3,2,3,1,3,1,1,3,1,2,1,2,3,2,1,1,2,3,2,3,3,3,2,2,2,2,1,3,1,1,1,3,3,2,2,1,2,2,2,1,3,2,2,1,1,2,3,2,1,1,2,2,2,2,2,1,2,1,2,1,2,3,1,3,2,2,2,1,1,3,1,3,1,3,2,2,3,3,1,1,2,3,3,2,2,2,3,3,2,2,3,3,1,1,3,3,2,2,1,3,2,1,2,2,2,2,3,1,2,3,2,2,1,3,2,2,2,2,3,1,3,3,3,2,3,2,2,3,3,1,1,1,1,1,3,1,1,1,3,2,3,2,1,3,2,2,2,2,1,2,2,2,3,2,3,1,3,2,1,3,1,3,2,2,2,3,1,1,3,2,3,3,1,1,1,3,3,3,2,3,2,1,3,3,3,1,1,3,1,1,3,3,2,3,1,2,1,1,1,2,2,3,1,3,1,1,3,3,1,2,3,3,3,3,1,2,3,1,2,3,3,1,2,3,1,2,3,1,2,2,3,1,1,1,2,2,2,1,1,1,1,3,1,2,3,2,1,3,2,2,1,1,3,2,2,3,3,2,2,2,1,1,3,3,1,2,3,2,3,2,3,2,1,3,1,2,3,2,1,3,2,3,3,2,3,3,2,2,3,3,3,3,2,2,1,1,3,3,2,1,1,2,1,1,2,2,1,2,1,3,2,3,1,2,2,2,1,1,1,1,2,2,2,1,3,3,3,2,3,2,2,1,2,2,2,2,1,2,3,1,1,2,2,3,2,3,2,2,3,2,2,3,3,3,2,1,1,1,2,2,1,2,3,3,2,3,1,1,1,1,1,1,3,1,1,1,1,3,2,1,2,1,1,2,2,3,1,3,2,2,3,1,1,3,2,1,1,1,1,2,3,2,1,2,3,3,1,3,2,1,1,2,1,1,2,2,2,1,3,1,1,3,1,2,3,1,2,2,3,2,1,2,2,3,2,3,1,3,1,1,2,1,2,3,1,1,2,2,2,2,2,2,2,1,3,1,2,2,1,3,3,2,1,1,1,2,1,1,1,1,3,3,2,3,3,1,3,3,1,3,2,2,3,3,3,3,1,2,1,3,2,2,2,1,3,3,3,1,3,3,3,2,1,1,3,3,3,3,2,2,3,3,2,3,2,3,2,2,2,2,2,2,2,1,2,3,2,2,1,3,1,1,3,3,2,1,1,3,3,2,1,1,1,3,2,3,3,2,1,1,2,1,2,2,1,2,3,3,3,1,1,3,3,3,3,1,3,2,2,2,1,2,3,3,3,3,2,3,1,3,2,2,2,3,3,3,2,2,2,1,3,3,3,3,2,3,3,1,3,2,3,2,1,2,1,2,2,2,3,1,3,1,2,2,1,3,2,3,1,1,1,2,3,3,1,1,1,2,1,3,2,2,3,1,1,2,3,3,1,3,2,2,3,3,3,3,1,3,1,1,2,1,3,3,2,1,2,3,1,2,3,1,2,2,2,1,3,3,1,3,2,3,2,2,3,1,2,3,3,1,1,1,3,1,2,1,2,3,2,3,3,3,2,3,3,2,2,1,3,1,1,2,2,2,1,2,1,1,2,3,3,3,1,3,2,2,1,2,2,1,2,3,3,1,2,1,2,1,2,2,1,3,3,3,2,1,2,1,2,3,3,2,3,1,2,3,1,1,2,2,2,2,1,2,1,3,1,2,3,1,3,3,2,3,1,1,2,3,1,3,3,3,3,3,1,3,1,2,1,1,1,2,3,3,3,2,2,3,1,2,1,3,1,2,2,3,3,3,1,1,1,3,3,1,1,3,1,3,1,1,2,1,1,1,3,1,3,3,2,3,1,1,2,2,3,1,2,1,1,2,2,2,3,1,2,3,2,3,3,3,1,1,3,1,2,2,2,3,1,2,2,2,1,3,3,1,1,3,2,1,3,2,1,1,3,3,2,2,2,2,3,3,1,1,3,2,2,1,2,2,2,2,2,3,3,2,1,3,1,3,2,2,1,3,3,2,2,1,1,1,2,1,3,2,1,1,3,1,1,1,3,1,3,2,1,3,3,1,2,1,3,2,3,2,3,2,2,2,1,3,1,1,1,3,3,2,3,2,3,3,3,1,3,2,3,1,3,1,1,3,1,2,1,3,1,3,3,2,2,1,3,2,3,1,1,3,2,2,1,1,2,3,1,3,2,3,1,3,1,3,3,3,3,3,1,1,1,3,3,2,1,2,1,3,1,3,3,1,3,3,3,3,3,3,2,1,3,1,2,2,3,1,3,3,2,3,3,1,2,1,1,1,2,1,1,3,3,1,1,3,2,3,2,3,2,1,3,1,3,1,3,1,1,1,3,2,2,3,3,2,2,3,2,1,3,1,3,1,1,2,3,1,3,2,2,1,1,2,1,1,2,2,3,1,2,3,3,1,3,1,1,2,1,1,1,3,2,1,3,2,1,2,1,1,2,2,1,3,3,1,2,1,2,1,1,3,3,2,2,3,3,1,2,1,2,3,1,3,2,1,2,3,2,3,3,3,2,2,3,2,1,2,3,2,2,3,3,1,2,3,1,3,1,2,1,3,2,2,1,2,1,2,1,1,2,1,2,1,2,2,3,1,2,1,3,2,3,1,3,1,3,1,3,3,2,1,1,3,2,3,1,3,2,3,1,2,1,1,2,1,1,1,3,2,2,3,1,3,2,3,2,2,3,1,1,3,2,1,2,2,2,1,1,3,1,1,1,1,1,1,1,1,3,3,2,3,1,3,1,1,1,3,1,1,3,3,2,3,3,3,3,3,1,3,3,3,2,2,2,1,2,1,2,2,2,3,2,1,3,3,3,1,2,3,3,1,1,3,3,1,2,2,1,3,3,2,3,3,2,3,3,3,2,3,1,3,1,3,1,1,2,1,3,2,1,1,3,2,2,3,2,1,2,2,3,1,1,1,3,3,2,3,2,3,1,1,1,3,3,3,3,2,1,1,1,1,3,1,1,2,3,2,2,1,1,1,2,3,1,3,3,1,3,1,3,3,2,1,1,2,1,1,2,3,2,3,2,2,2,3,1,1,2,2,2,1,2,3,1,2,3,2,3,3,1,2,3,1,2,1,1,1,2,1,2,2,3,3,3,1,1,2,1,1,3,3,1,1,2,3,2,3,3,2,1,3,3,1,3,2,1,2,2,3,1,1,2,1,1,1,1,3,2,3,2,1,3,2,2,3,3,3,1,1,3,3,2,2,3,3,1,3,3,3,1,1,3,1,3,1,3,1,2,3,2,1,1,2,1,2,2,2,2,3,2,3,3,3,2,1,3,1,1,1,2,3,1,3,1,1,3,1,3,3,2,3,3,3,2,1,2,1,2,2,1,3,3,2,1,3,3,1,2,2,3,1,1,2,2,1,3,2,1,1,2,3,3,3,3,1,3,1,2,1,3,1,2,3,2,2,1,3,3,1,1,2,2,1,3,3,1,2,1,3,3,3,2,1,2,3,3,1,2,3,3,1,3,1,3,3,2,2,2,1,1,1,1,3,1,2,1,3,1,2,2,1,1,2,1,1,3,3,1,1,2,1,2,1,2,3,3,1,2,3,3,3,1,3,1,1,1,3,3,2,3,2,3,3,1,2,2,1,1,3,1,2,1,2,3,1,1,1,2,2,1,2,1,3,1,2,2,3,3,1,1,3,2,3,2,3,3,3,3,3,3,3,1,3,2,2,2,1,2,1,1,2,2,1,3,1,3,3,1,1,1,2,3,3,1,3,3,1,1,1,1,3,3,2,2,1,2,3,2,1,2,2,3,3,1,2,2,3,3,3,1,2,1,1,2,1,2,3,1,3,1,1,3,2,2,2,2,2,1,1,1,2,1,3,3,2,1,1,1,2,3,3,1,1,2,3,2,2,1,3,2,1,3,2,2,2,1,3,3,3,2,3,1,1,1,1,3,2,3,1,3,2,3,3,2,2,1,1,2,1,2,3,1,3,3,3,1,1,2,3,1,3,2,1,1,3,3,3,3,1,1,1,3,1,1,3,3,3,2,2,2,3,3,3,3,2,2,1,3,3,2,3,3,3,1,2,3,3,2,1,1,3,2,3,3,2,3,1,1,2,1,3,2,1,3,2,1,3,1,1,2,1,1,2,3,2,2,3,2,1,1,3,2,3,3,2,2,2,3,1,2,1,3,2,1,1,2,2,3,2,2,1,1,1,3,1,1,1,2,3,1,2,1,1,3,1,2,1,2,3,3,2,3,3,3,2,1,1,1,3,1,1,1,2,1,3,3,3,3,1,2,2,1,1,2,3,2,2,3,2,1,2,1,3,1,3,3,2,1,3,2,1,3,2,1,2,2,2,1,1,2,3,3,3,2,3,1,3,2,3,2,3,3,1,2,3,2,3,3,1,1,2,2,3,2,2,1,1,3,2,3,2,2,3,1,1,3,3,3,2,1,2,3,1,1,2,1,3,1,2,3,1,1,2,1,2,2,3,1,1,2,2,2,3,1,2,2,3,2,1,3,1,1,3,3,3,3,1,3,1,2,2,3,3,1,2,1,1,3,1,3,3,3,3,2,2,1,1,1,1,1,3,1,3,3,2,2,1,3,2,1,2,1,1,1,2,1,3,1,3,1,2,2,3,2,3,3,3,3,2,3,3,2,1,1,1,1,1,1,1,2,3,2,1,2,1,2,1,3,3,2,3,1,2,1,1,1,2,2,2,2,2,1,1,3,1,1,3,2,3,3,2,3,1,1,1,2,1,3,2,3,2,1,2,3,3,3,1,1,2,3,3,1,1,2,1,1,2,1,2,3,2,2,2,1,3,1,2,3,1,2,3,1,3,3,3,2,2,2,1,3,2,1,3,3,2,2,2,1,1,2,3,2,1,2,1,1,2,2,1,2,3,3,1,2,2,3,3,1,3,3,2,1,1,2,1,2,2,1,3,3,2,3,2,1,2,3,3,2,1,3,1,3,2,3,1,1,1,1,1,1,3,2,3,3,2,2,3,2,3,1,1,2,3,1,3,3,2,2,2,3,3,1,3,2,1,1,1,3,3,1,3,1,1,2,3,3,1,2,3,3,2,2,3,3,1,2,2,3,2,2,3,2,1,2,1,2,3,1,2,1,2,1,3,3,3,3,3,3,2,2,1,1,3,2,2,3,3,3,1,3,3,1,2,3,1,2,2,1,3,3,1,1,2,1,3,2,3,1,1,2,1,2,3,3,1,3,1,3,1,1,1,2,2,3,2,1,3,2,3,1,3,2,2,1,2,2,1,1,2,1,2,1,2,1,2,3,1,2,2,3,1,1,1,2,2,1,3,3,1,1,3,2,2,2,2,2,1,3,3,3,1,3,1,3,2,1,1,3,2,1,1,1,3,1,2,2,2,3,2,2,2,1,3,1,1,3,1,3,2,1,2,2,2,2,1,1,1,1,3,3,2,2,2,2,3,1,1,2,1,1,3,3,3,2,3,1,1,2,2,1,3,3,3,2,2,3,2,2,3,2,3,2,1,1,2,2,1,1,2,2,2,3,3,3,3,1,3,1,1,1,3,1,1,1,2,3,3,2,3,3,1,3,1,2,1,3,1,3,1,3,1,2,1,1,3,2,3,2,3,2,1,3,3,1,1,1,1,1,3,2,1,3,3,1,1,3,1,1,2,3,3,3,1,3,2,3,1,2,1,2,1,2,2,3,1,1,2,2,3,2,3,2,2,1,2,2,2,2,3,2,1,2,1,2,2,3,3,2,2,1,3,3,3,3,1,1,3,3,2,3,2,3,1,3,3,2,1,3,2,2,3,2,2,3,2,3,3,2,2,3,3,1,2,3,2,1,2,1,1,2,3,3,2,3,2,3,2,3,1,2,2,1,3,1,1,2,1,3,3,3,1,2,1,1,3,2,2,2,3,2,2,1,2,1,2,2,1,3,2,3,3,3,2,1,2,1,3,2,3,3,2,2,3,2,3,3,2,2,1,2,1,3,1,2,3,2,1,2,1,1,1,1,1,2,2,1,1,1,1,2,3,2,1,2,2,1,2,2,3,3,3,2,3,2,3,1,2,1,1,1,3,2,3,2,3,1,2,2,2,2,3,2,2,1,2,1,1,2,2,3,1,2,3,3,3,2,3,3,2,3,2,2,1,1,1,3,1,2,3,2,1,3,2,1,2,3,2,3,3,3,2,3,1,3,1,3,1,3,1,1,1,1,3,1,1,2,2,3,3,2,1,1,3,3,1,3,3,1,1,2,3,1,3,2,2,3,1,3,3,2,2,2,3,3,2,2,3,2,3,3,3,1,1,1,1,3,2,3,3,3,3,3,2,1,2,2,2,1,3,3,3,3,2,3,1,1,2,1,2,2,3,1,1,3,3,2,3,3,2,1,1,2,3,2,2,2,3,3,1,2,2,2,1,3,1,1,2,1,1,1,1,2,1,1,2,2,2,3,3,2,1,3,3,1,2,2,2,1,1,1,3,1,1,3,2,1,2,2,3,1,1,2,2,3,2,1,3,3,2,2,2,2,3,1,2,2,2,2,3,3,1,2,3,1,1,3,1,3,3,1,1,2,3,1,1,3,3,3,3,2,2,1,3,1,2,1,3,1,1,3,2,3,2,1,1,1,3,1,2,1,2,3,1,1,2,1,1,2,1,3,3,2,1,2,3,3,2,1,1,2,3,2,2,1,1,1,3,3,3,3,1,1,3,3,3,2,3,1,2,3,1,2,2,2,1,3,2,1,3,3,2,1,2,2,2,1,1,2,1,1,3,1,2,3,2,3,1,3,2,3,1,2,1,3,1,2,2,2,3,1,3,2,2,2,3,2,1,1,3,2,1,3,1,1,2,1,2,2,1,1,3,2,1,3,3,1,3,2,1,3,1,2,3,1,2,2,3,2,2,2,2,1,1,1,3,2,3,3,1,1,1,3,3,3,2,2,1,3,3,3,3,2,1,1,2,3,2,1,1,2,3,2,1,1,3,3,1,3,3,3,3,3,2,3,2,3,1,2,3,3,1,2,2,2,1,3,2,2,1,2,3,2,1,3,3,3,1,3,2,1,3,3,1,2,3,1,3,1,2,2,2,3,3,1,1,1,2,3,1,3,2,3,3,1,3,2,1,1,3,3,1,3,1,2,3,1,1,3,2,2,2,3,2,2,2,2,3,2,3,2,3,3,3,2,2,1,2,3,3,1,3,1,1,3,2,3,2,2,2,2,1,1,1,3,3,2,2,3,1,2,3,3,3,3,1,3,3,3,2,1,2,1,2,3,1,2,3,2,2,3,1,2,2,1,1,3,1,1,2,2,1,2,3,2,3,2,2,1,2,1,3,2,3,2,3,2,1,2,3,2,1,2,1,1,1,1,2,3,3,1,1,1,2,2,1,2,2,2,3,2,1,3,3,3,3,1,2,2,3,1,3,3,1,2,2,1,3,2,2,3,1,3,3,2,3,2,3,2,2,1,2,3,3,1,1,2,1,2,2,1,3,3,1,3,2,3,1,3,2,3,2,3,2,3,2,2,2,2,2,3,3,2,2,2,1,1,3,3,1,3,3,1,2,1,1,3,1,3,2,1,2,3,3,3,1,1,2,3,2,1,1,2,1,1,1,3,2,3,3,2,3,1,2,3,3,2,1,1,3,3,3,2,3,1,3,1,2,1,2,1,2,3,1,2,2,1,3,3,2,3,1,3,1,3,3,2,1,1,3,1,3,3,2,3,1,3,2,2,1,2,2,3,2,3,2,1,1,1,3,2,1,2,2,2,2,3,1,1,1,1,2,3,2,1,3,1,3,1,1,3,3,2,3,1,1,2,2,1,1,1,2,2,1,3,1,1,1,2,2,3,2,2,1,2,3,1,3,3,1,2,2,3,3,3,3,3,2,3,2,1,3,2,1,1,2,1,3,3,3,2,3,2,1,2,1,2,2,2,2,2,2,2,1,2,3,2,1,2,3,2,1,2,2,1,3,3,1,3,2,3,2,3,1,3,2,3,2,1,2,3,2,1,1,2,2,1,3,3,1,2,1,3,2,3,1,3,2,1,1,2,1,1,3,3,3,3,3,3,1,1,2,2,1,1,2,1,3,3,2,3,2,1,2,2,2,2,2,1,1,1,1,1,3,2,1,1,1,1,1,3,1,2,2,1,3,2,3,1,3,1,2,3,1,2,2,1,2,2,2,3,1,3,1,2,2,3,2,1,3,3,1,2,3,1,2,1,1,3,2,1,3,1,1,1,3,3,3,1,3,2,3,3,1,3,1,1,1,3,1,3,3,1,3,1,3,2,2,1,2,3,1,1,3,2,1,1,2,1,2,3,2,1,3,3,1,3,3,3,3,3,1,2,1,1,2,2,2,1,1,1,2,3,2,2,3,2,1,1,1,3,3,1,3,2,2,1,3,2,1,1,3,3,2,1,3,1,3,3,2,1,3,2,2,1,1,2,3,1,3,1,2,1,1,3,1,2,1,2,3,1,1,1,1,3,2,3,3,3,2,2,2,2,2,2,3,2,1,2,3,1,3,1,1,1,3,1,1,3,1,3,1,3,3,2,3,1,1,1,3,1,2,2,3,3,1,3,2,1,2,1,2,2,1,2,2,1,3,2,1,2,3,2,3,1,3,1,1,1,3,3,1,2,2,3,3,1,3,3,1,3,1,1,3,1,3,1,1,3,3,2,2,3,3,3,1,1,1,3,1,2,2,2,3,1,1,2,1,2,2,1,2,3,3,3,2,2,2,2,2,2,3,1,3,3,3,2,3,2,2,3,1,2,2,2,3,3,3,1,2,3,1,2,3,3,1,2,2,2,1,1,1,1,3,1,1,2,3,1,1,1,1,3,3,3,3,1,1,3,2,2,1,3,2,2,1,1,3,3,2,3,1,3,2,2,2,2,2,1,2,2,1,1,2,1,1,3,3,2,1,3,3,2,2,1,3,3,3,3,3,1,1,1,1,1,2,3,3,3,1,3,3,3,3,3,3,2,1,3,2,3,3,1,2,3,2,2,3,3,3,3,1,3,3,1,2,1,1,2,1,3,3,1,3,1,3,3,3,1,3,2,2,2,1,3,2,2,2,2,3,3,1,2,1,2,1,3,2,2,1,2,1,1,1,3,3,2,1,2,3,2,1,3,1,3,2,1,3,1,1,2,3,1,1,2,3,2,2,1,1,2,1,2,2,2,1,1,3,3,1,2,2,2,2,1,3,1,2,1,1,3,1,3,1,2,3,1,3,2,1,2,1,1,2,1,3,3,1,2,1,2,1,1,3,3,1,3,3,2,3,1,1,1,3,3,1,1,2,2,1,3,2,3,1,2,3,3,2,3,1,3,2,1,2,1,3,3,1,3,2,3,1,1,2,2,3,3,1,1,1,1,1,1,3,2,2,2,3,1,2,1,1,1,2,1,2,2,3,2,2,3,2,1,1,3,2,1,2,3,2,3,1,2,3,3,2,3,1,1,1,3,2,2,3,2,1,3,1,2,2,3,2,2,3,3,2,2,2,2,1,1,1,3,1,3,1,3,3,1,1,3,3,3,2,1,1,1,1,3,2,2,3,3,3,2,3,1,1,1,3,3,3,1,3,3,3,1,3,2,1,3,1,1,1,1,2,1,3,2,1,3,2,1,1,3,3,1,2,1,1,3,2,3,3,1,3,3,2,2,2,3,1,3,1,1,1,2,2,1,1,3,3,3,1,3,3,1,1,3,3,1,2,3,3,1,3,3,3,2,2,1,3,2,2,3,1,2,1,3,2,2,1,2,3,3,2,2,3,1,2,3,1,1,1,2,3,1,1,3,3,3,3,3,1,1,2,2,2,3,2,3,2,2,1,3,3,1,1,3,2,3,1,1,2,3,2,1,2,1,3,2,3,1,3,1,3,3,2,3,3,1,1,3,3,3,3,2,1,3,2,1,2,3,3,1,3,2,2,1,2,2,1,1,1,2,3,2,2,1,2,1,2,3,1,2,3,1,2,1,1,3,2,3,1,3,3,2,1,3,2,1,2,3,1,1,1,1,1,2,3,2,3,2,2,2,3,3,3,3,1,3,3,2,3,1,1,2,3,1,2,3,1,1,2,1,2,1,1,1,2,2,2,3,1,3,2,3,3,3,2,1,1,3,1,1,3,2,1,3,2,1,1,1,3,2,1,1,2,1,2,2,1,1,1,3,3,3,1,1,1,1,3,2,1,1,1,3,2,1,1,1,3,3,3,1,2,2,2,2,1,2,1,3,1,2,3,3,2,1,2,1,3,3,3,2,2,1,3,1,3,1,3,3,3,3,2,1,2,3,1,1,3,1,3,2,2,2,2,2,2,3,1,1,2,2,3,1,3,1,3,3,3,2,1,2,1,2,3,2,1,3,3,2,2,2,3,3,1,2,3,2,2,3,2,3,3,3,2,2,1,1,3,1,1,3,1,1,2,1,2,1,1,3,3,3,3,2,1,1,2,1,2,3,3,2,1,2,1,3,1,3,3,3,3,1,1,2,2,3,1,1,3,3,2,2,1,1,3,3,3,2,2,3,2,3,3,2,2,2,2,3,1,1,3,2,3,1,2,2,2,3,1,1,2,2,2,2,2,1,2,1,2,2,3,2,1,2,1,2,2,3,2,3,1,1,3,1,2,3,1,1,3,3,2,2,1,2,2,2,2,2,3,1,1,2,1,2,3,3,2,3,2,2,3,3,3,1,2,2,2,1,1,3,3,3,2,1,3,3,1,3,3,2,2,3,1,1,3,1,2,2,2,2,2,3,3,3,2,1,3,1,2,2,2,3,3,2,2,1,2,3,1,1,3,1,1,3,3,3,2,1,2,3,1,2,3,2,2,2,2,3,1,3,2,1,3,3,1,2,1,1,3,1,2,1,3,3,2,2,1,1,1,2,2,3,2,2,1,3,3,1,1,3,1,2,3,2,3,3,2,2,3,3,3,2,2,2,1,3,1,1,1,2,1,2,3,1,1,1,2,1,3,1,1,3,3,2,3,1,3,3,1,1,1,3,2,2,1,2,1,2,2,2,1,1,2,3,2,2,2,2,3,2,1,3,1,3,2,1,2,2,1,3,2,1,2,1,2,2,3,1,1,2,1,2,3,1,1,1,3,3,3,2,1,1,2,2,1,2,2,3,1,3,3,3,1,3,3,1,1,1,3,1,3,1,3,1,1,2,1,1,3,2,3,3,3,2,3,1,1,3,2,2,3,1,1,3,2,1,1,2,2,1,1,3,2,2,3,1,3,3,3,2,2,1,3,3,2,2,3,2,1,3,3,1,1,2,1,3,3,1,1,3,2,1,2,2,2,1,2,3,3,2,2,3,3,3,2,1,2,3,2,3,3,2,1,3,1,2,2,3,3,3,1,2,1,2,1,2,2,3,1,3,2,1,2,3,1,1,3,3,2,2,2,3,2,3,3,3,1,1,2,3,3,2,3,3,3,1,1,3,3,3,1,3,2,1,3,3,3,2,2,1,1,3,1,1,2,1,1,3,1,1,3,3,3,3,2,2,3,1,3,3,1,3,2,2,3,2,1,3,1,1,1,1,3,2,3,1,2,1,2,3,3,3,1,1,3,3,1,3,1,1,3,3,2,3,1,2,1,2,3,3,2,3,2,1,2,1,3,2,3,2,1,3,2,2,3,3,1,1,2,1,3,1,3,3,1,2,2,1,1,2,2,2,2,3,1,2,3,1,3,1,3,2,3,3,3,1,2,3,2,3,1,3,1,3,3,1,2,1,3,2,3,3,3,1,2,1,1,3,1,2,3,2,2,1,2,3,2,2,1,1,2,2,1,1,2,2,3,2,2,1,1,2,1,3,2,3,3,2,2,3,1,1,1,3,3,3,2,1,2,2,1,1,2,2,1,1,2,3,2,1,3,2,1,2,3,2,3,2,3,2,3,3,1,1,3,2,1,3,1,3,1,2,3,2,1,2,2,2,1,1,3,1,2,3,2,1,1,3,2,2,3,2,2,2,1,2,2,3,1,1,1,1,2,2,1,2,1,1,3,1,3,2,3,3,3,3,3,3,3,3,1,3,2,1,3,1,2,3,1,1,1,1,3,3,2,1,1,1,1,1,1,2,3,2,3,2,1,3,3,3,2,1,3,1,2,2,2,3,2,3,3,1,1,1,3,2,2,2,1,2,3,3,2,3,3,1,1,2,1,2,1,3,2,1,2,1,2,2,2,3,2,2,1,1,1,2,1,3,3,3,3,2,1,1,1,3,1,2,1,1,3,1,3,3,2,3,1,2,1,1,2,3,3,1,3,3,3,1,2,3,2,2,2,3,3,3,1,1,2,3,1,2,3,2,2,3,2,2,1,3,1,2,3,3,1,2,3,3,1,3,1,2,1,3,1,3,1,1,3,2,1,1,3,1,1,1,3,1,1,3,2,3,1,1,2,2,3,2,1,1,1,3,1,1,1,3,3,2,3,1,2,1,1,2,1,3,1,2,3,2,1,3,2,2,2,3,1,1,2,3,1,3,3,2,1,3,2,2,1,3,2,3,1,2,1,2,3,3,3,2,1,2,1,1,1,3,2,2,1,2,2,2,2,1,1,1,3,2,1,3,3,2,1,2,2,3,2,1,1,3,3,1,3,2,2,3,2,1,2,3,2,3,3,3,1,1,1,3,3,3,2,1,2,3,1,2,3,3,1,1,1,3,3,1,1,1,3,1,3,3,2,3,1,2,3,2,2,3,1,3,2,3,1,2,2,1,3,2,1,2,3,1,1,2,2,3,1,2,1,1,2,1,2,2,3,1,2,1,3,1,1,3,2,2,3,1,1,1,3,3,3,3,1,2,1,1,1,1,1,2,1,3,2,1,1,2,3,1,1,1,1,3,1,2,1,1,1,1,3,2,2,2,1,2,2,1,3,3,2,2,1,3,2,3,3,2,1,1,2,3,3,3,2,1,3,1,3,3,2,1,1,1,1,2,1,2,1,3,3,1,3,3,1,3,3,2,2,3,3,3,1,3,1,3,3,1,2,2,2,2,3,3,3,3,1,2,1,1,1,3,1,3,2,3,1,1,1,2,1,2,1,1,2,3,1,2,3,1,3,3,1,2,3,3,3,3,1,2,3,1,3,2,3,3,3,3,3,2,3,1,1,3,3,2,1,2,3,1,3,3,3,2,3,2,1,2,1,1,2,1,2,2,2,1,3,1,1,2,3,3,1,3,2,3,1,1,1,3,1,1,2,1,2,1,3,3,3,1,2,3,1,3,3,1,2,1,2,1,3,3,3,1,1,1,1,3,2,3,3,3,2,2,1,2,3,1,3,1,1,2,3,3,3,1,1,1,1,3,1,1,1,2,3,2,2,3,1,1,2,1,2,1,2,1,2,3,2,2,2,2,2,3,3,3,3,2,2,2,2,1,3,3,1,3,3,2,1,2,2,2,1,2,1,3,3,3,2,3,1,1,1,1,2,2,2,1,2,3,3,3,1,3,3,1,2,3,2,3,1,3,3,2,1,1,3,1,2,3,2,3,2,2,3,1,1,2,3,2,2,2,3,3,2,3,3,2,3,1,3,1,2,3,1,2,2,1,1,1,1,1,3,3,3,3,2,3,3,2,3,1,1,2,1,3,1,3,2,2,1,1,2,2,1,3,1,2,2,2,1,1,1,2,1,1,1,3,3,3,3,2,2,3,3,1,2,3,2,3,1,3,3,1,2,1,1,2,2,1,2,3,2,2,1,3,2,2,1,2,1,1,3,3,3,3,1,2,1,2,2,2,1,1,1,1,3,2,3,3,3,3,3,1,1,3,2,3,1,2,3,2,3,3,3,2,3,1,2,1,3,3,3,2,2,1,3,1,3,3,2,3,3,1,3,1,1,1,3,1,3,1,2,2,2,1,3,1,2,1,2,1,2,1,3,2,3,3,3,2,2,2,1,2,2,2,1,1,2,2,3,1,1,3,2,3,2,2,3,1,3,3,1,2,1,2,2,3,2,3,1,3,1,2,1,1,2,1,1,1,2,3,3,2,1,1,2,3,1,2,2,2,2,2,3,1,2,2,1,3,1,3,3,3,2,2,2,1,1,1,2,1,2,1,1,1,2,3,1,3,3,3,1,2,2,1,2,2,3,2,2,1,1,3,1,3,3,3,3,2,3,3,3,1,1,2,1,3,2,1,1,1,1,3,2,2,2,3,3,1,1,1,3,2,1,2,1,2,3,2,1,2,1,3,1,1,3,2,1,3,3,2,2,1,2,2,1,1,1,1,1,2,2,2,2,2,1,1,2,3,3,2,3,2,3,3,2,3,3,1,1,3,1,1,1,3,2,3,1,3,2,2,1,3,3,2,3,1,3,3,2,1,2,1,1,3,2,3,1,1,1,3,1,3,1,3,2,1,3,1,2,2,1,1,1,1,2,1,1,3,3,1,2,2,1,1,3,2,3,2,2,3,2,1,1,3,1,2,1,3,2,2,1,3,3,1,1,2,3,3,1,1,2,2,3,2,3,2,1,2,3,2,1,2,2,3,3,3,3,3,3,3,1,3,1,1,1,2,2,1,2,2,1,1,3,3,1,1,1,2,1,1,2,3,2,3,3,2,3,1,2,3,2,3,1,1,3,1,1,1,2,2,1,2,2,2,3,2,2,1,2,3,3,3,3,3,3,1,1,2,3,2,1,1,3,3,3,3,3,2,1,2,3,2,2,2,3,2,2,3,1,1,1,3,3,2,1,1,2,3,1,3,1,3,2,2,2,3,1,1,1,3,2,3,3,3,1,2,2,2,2,3,2,2,1,2,1,3,3,2,3,2,3,1,2,1,1,2,3,3,2,2,1,3,1,2,3,1,1,3,2,2,1,1,3,3,1,3,2,2,3,2,1,1,1,3,2,2,3,3,2,2,2,3,2,1,2,1,1,1,2,1,1,3,3,1,3,3,2,1,3,3,3,2,3,1,2,2,3,3,1,1,1,3,1,3,3,2,2,3,2,1,3,2,1,3,1,3,3,1,2,2,1,1,2,3,2,3,1,3,1,2,2,2,1,1,3,3,3,2,3,1,3,3,2,3,1,2,1,3,3,2,3,1,3,3,3,2,1,2,3,3,3,3,1,2,3,2,3,1,2,3,1,2,1,3,2,1,1,2,2,1,2,1,2,2,3,1,1,2,3,3,2,1,1,2,3,2,3,2,2,2,3,1,3,3,2,2,3,1,1,1,2,1,2,3,2,1,3,1,3,3,3,3,2,1,1,1,2,2,3,2,1,2,3,3,1,2,1,2,2,1,1,2,2,1,3,2,1,3,1,1,1,3,1,1,1,3,2,1,3,2,1,2,1,2,1,3,1,1,3,2,2,3,3,3,3,3,2,1,2,2,2,1,3,2,2,3,1,3,3,1,3,1,2,2,2,3,1,1,1,2,2,2,1,2,3,3,3,1,1,1,1,1,2,1,1,2,2,1,1,3,1,2,2,3,3,3,3,3,3,3,1,3,1,1,1,3,2,1,1,2,2,3,2,2,3,2,3,2,2,1,1,3,3,2,2,2,1,2,3,1,3,2,2,1,3,1,2,2,1,3,3,3,3,1,2,1,3,3,1,1,2,3,1,3,1,3,3,2,3,2,1,2,1,1,1,2,3,2,1,3,3,1,3,3,2,2,1,3,1,1,2,2,1,2,2,1,2,3,1,1,3,2,3,1,1,2,2,3,1,2,3,3,2,1,3,1,1,2,2,3,3,3,1,1,1,1,1,1,3,2,1,1,3,2,2,1,1,2,1,3,3,2,2,1,3,2,1,2,2,2,1,2,1,1,2,1,2,2,3,1,1,1,2,2,1,3,2,2,1,2,3,3,2,3,1,1,3,1,1,2,2,3,1,2,3,2,2,3,2,3,3,3,1,3,2,2,2,3,2,1,2,1,2,2,2,3,2,1,2,1,1,3,3,3,1,2,1,3,1,3,3,3,1,3,2,3,1,3,3,1,1,3,2,1,2,2,3,3,1,3,2,3,3,3,3,3,1,3,1,1,2,3,2,1,2,3,3,2,3,3,1,2,1,1,2,1,1,2,2,3,2,2,1,3,3,1,3,2,3,1,3,2,2,1,2,3,1,3,3,1,2,3,3,2,3,2,2,2,2,1,3,1,1,2,1,3,3,1,1,3,2,2,2,2,3,3,2,2,3,2,3,1,3,1,3,2,1,2,3,3,1,1,1,1,1,1,2,2,2,1,2,3,1,2,3,1,2,2,1,2,1,1,2,2,1,2,3,2,3,3,3,2,3,2,1,3,3,1,1,3,1,1,3,2,1,2,1,2,1,1,3,1,2,3,2,1,1,3,2,1,3,3,2,2,3,1,1,1,1,3,3,3,2,3,1,1,1,1,2,3,3,2,2,1,3,2,1,2,3,2,3,3,1,2,3,3,2,1,1,2,3,2,1,3,2,2,1,1,3,2,3,3,3,3,2,2,2,1,3,3,2,3,2,1,1,2,2,1,3,1,1,2,3,1,2,3,1,3,1,3,2,3,3,3,3,1,1,3,3,3,3,2,1,2,1,1,2,3,2,1,3,1,2,3,1,2,1,3,2,2,3,2,3,3,1,3,1,1,1,3,3,2,1,1,1,2,3,2,2,1,3,1,3,3,2,2,1,2,1,3,1,1,2,1,2,2,3,1,1,1,2,2,1,1,1,2,3,3,2,3,2,2,3,2,2,3,2,2,3,3,3,1,2,1,3,1,3,1,1,2,3,1,2,1,2,2,1,1,1,1,1,3,2,1,2,2,3,1,1,3,2,3,1,3,2,1,3,3,2,2,2,1,1,1,3,2,2,2,3,2,1,1,2,1,3,2,3,2,2,2,2,3,1,2,3,2,2,1,1,3,2,1,1,3,2,3,2,2,3,2,1,2,3,1,1,3,1,3,1,1,1,3,2,1,1,3,1,3,2,2,3,3,1,2,2,1,2,3,3,3,1,1,1,2,2,1,1,1,1,1,3,1,1,3,3,2,2,2,3,1,3,2,1,3,3,2,1,1,2,3,1,1,2,1,2,3,2,2,2,3,3,1,3,2,2,3,3,3,1,1,2,2,1,3,3,3,1,3,3,3,3,1,1,1,1,1,1,3,2,3,2,3,3,1,1,2,1,1,1,2,3,3,1,2,3,2,1,3,1,1,2,3,1,3,3,1,3,3,3,1,2,3,2,3,3,1,2,3,2,1,3,3,3,2,1,3,2,1,2,2,2,3,1,2,2,1,2,3,2,3,2,3,1,3,1,1,1,3,2,1,2,2,3,3,3,1,2,2,2,1,2,1,2,2,1,3,1,1,1,2,3,2,2,2,3,2,3,1,1,3,3,1,1,2,1,1,3,1,1,2,2,3,3,3,1,2,1,2,1,2,3,3,2,2,2,3,1,2,3,3,2,2,1,2,2,3,1,2,3,2,1,3,2,2,2,1,2,3,3,3,3,1,2,1,2,2,3,3,1,3,2,1,3,1,2,2,3,2,1,1,3,1,2,1,2,3,2,3,3,2,3,1,1,1,3,1,1,1,3,2,1,1,2,1,2,2,1,2,2,3,1,3,3,3,1,3,1,2,2,2,2,2,1,2,3,1,3,2,3,1,1,1,1,2,3,2,1,1,1,2,2,1,2,3,1,1,3,3,3,1,1,2,2,2,1,3,1,1,3,3,1,1,2,1,2,2,3,3,3,3,1,2,3,3,3,1,1,1,1,1,3,1,1,2,3,2,2,1,2,2,3,3,2,3,2,3,2,2,2,3,3,1,1,1,1,2,1,2,1,3,1,2,3,3,2,1,1,3,2,1,3,1,2,3,1,2,2,2,1,2,2,2,3,1,2,3,3,1,1,2,2,1,3,1,2,2,2,3,3,3,3,2,3,3,2,1,2,1,1,3,2,3,2,2,1,3,1,2,3,3,1,3,3,2,2,1,1,3,1,3,2,3,3,2,2,1,3,1,2,1,1,1,2,2,3,2,1,2,2,2,3,1,3,3,1,3,3,2,1,2,1,2,1,2,3,1,3,2,1,3,3,3,2,3,2,1,3,1,2,3,1,1,3,1,3,1,2,2,1,3,2,1,1,3,2,3,2,3,2,2,2,2,3,3,1,1,2,3,1,3,3,2,3,1,3,1,1,1,2,1,2,3,1,3,2,1,2,3,3,3,3,3,2,1,2,3,3,2,2,3,1,3,3,2,3,3,2,1,3,2,2,2,3,1,2,2,2,3,3,2,2,2,2,2,3,2,1,2,3,2,2,3,3,3,3,3,3,2,2,1,1,3,1,3,3,3,2,3,1,2,2,2,3,2,2,1,1,3,2,1,3,2,3,2,2,1,1,3,1,1,1,2,2,1,1,2,1,3,3,2,2,3,3,2,1,1,2,2,3,2,3,2,3,3,3,3,1,3,1,2,2,3,1,2,3,2,2,1,2,2,1,2,1,3,2,3,2,3,3,2,1,3,3,2,2,1,1,2,3,1,2,2,2,3,1,2,2,2,3,1,3,2,3,2,2,3,2,2,2,1,1,1,2,2,2,3,1,1,2,3,3,2,2,3,1,1,3,1,1,1,1,1,1,3,3,2,3,1,3,1,2,2,1,2,3,3,1,3,1,2,3,1,2,2,2,2,1,2,1,1,3,2,1,1,2,2,3,3,3,1,3,1,2,2,3,1,2,1,2,3,3,1,2,3,3,2,2,1,1,2,3,1,1,3,2,1,2,3,2,2,1,3,3,1,2,1,1,3,2,2,2,3,3,3,3,3,2,1,3,2,2,3,1,1,2,3,3,1,1,3,3,3,2,2,2,2,2,2,1,2,1,3,3,3,2,1,2,3,1,3,3,1,3,2,1,3,3,1,3,1,3,2,2,2,2,1,3,3,3,2,1,2,3,2,1,1,2,1,1,2,3,2,1,1,3,3,3,1,1,3,1,1,1,1,1,2,2,1,3,1,2,3,3,2,2,1,2,2,1,1,2,2,2,2,1,2,1,3,2,2,2,2,3,3,2,1,3,2,2,1,3,1,1,1,1,3,2,2,2,3,2,1,3,3,1,2,2,2,3,1,3,2,2,2,2,1,1,3,3,3,3,3,1,3,2,3,1,3,3,2,1,2,1,2,1,3,3,2,3,1,2,3,1,1,1,1,3,1,3,3,1,2,1,3,2,3,2,1,2,2,3,2,2,2,1,3,3,2,2,1,3,3,3,3,2,2,1,1,2,3,3,3,3,2,2,1,2,3,2,1,3,3,3,1,1,1,2,2,3,2,2,3,3,3,2,2,3,1,1,1,2,3,1,2,2,1,1,3,1,2,3,1,2,2,3,2,1,2,2,1,1,3,3,3,3,1,3,2,3,1,1,1,1,2,2,2,1,1,3,3,2,1,2,2,2,1,3,1,3,3,3,3,3,1,2,3,1,1,1,1,2,2,2,2,3,3,1,1,3,3,2,1,1,3,3,1,1,1,2,2,1,2,2,1,1,3,3,3,1,1,2,3,1,3,2,1,2,3,1,3,1,1,3,1,2,3,1,2,3,3,2,1,1,3,3,1,2,3,1,3,3,3,3,1,1,3,3,2,2,2,2,3,3,3,2,2,1,2,1,2,3,3,2,2,1,2,3,2,1,3,3,1,3,2,3,2,1,3,1,3,3,2,1,1,1,3,1,3,3,1,3,3,3,1,3,3,2,3,1,1,3,2,1,2,1,3,1,3,1,3,1,2,1,2,1,3,1,2,1,2,1,1,1,3,2,2,2,1,1,3,3,1,1,2,3,2,3,2,1,1,2,2,1,2,1,1,1,1,1,3,3,2,1,3,2,1,1,1,1,1,1,1,3,2,2,1,2,3,2,1,2,2,2,1,1,1,1,3,1,1,1,2,1,1,3,1,3,1,3,2,1,2,3,3,3,1,2,2,1,2,1,1,3,3,3,2,3,2,3,1,3,2,1,3,3,1,3,3,2,3,2,2,1,3,3,1,1,3,2,1,3,3,3,2,3,1,3,1,1,1,3,2,1,3,2,3,1,2,2,1,2,1,2,1,1,2,1,3,1,2,1,1,2,2,2,1,1,1,1,1,3,3,2,3,1,3,1,2,3,3,1,2,3,1,3,3,3,3,1,3,1,2,2,3,3,3,2,2,3,2,2,2,1,3,1,3,3,2,3,2,1,2,3,2,2,1,3,1,2,2,2,3,2,2,1,3,1,2,3,2,2,2,2,2,1,2,3,3,1,3,1,3,3,2,3,3,1,2,2,2,2,3,2,2,1,3,1,1,3,2,1,3,3,3,1,1,2,3,1,1,3,1,2,1,1,2,3,3,3,1,3,3,3,1,1,3,2,3,1,1,3,2,1,2,3,3,1,1,3,1,1,1,3,1,3,1,3,1,1,1,1,2,2,2,2,2,1,2,3,2,2,3,1,1,2,2,3,3,2,1,1,1,1,2,1,2,2,1,2,2,1,1,2,2,1,3,2,1,2,2,2,3,3,3,2,2,2,1,3,1,3,3,1,2,2,3,3,3,2,3,3,1,2,1,2,1,2,1,1,2,3,2,1,2,1,1,3,2,1,1,3,2,1,3,2,1,3,1,1,3,3,3,3,3,1,2,3,2,1,2,3,1,2,3,2,3,2,1,1,2,1,1,2,1,2,1,2,1,1,2,3,3,2,2,3,1,3,3,3,3,1,2,3,2,3,3,3,3,2,1,3,3,2,3,1,3,3,1,3,3,3,1,2,2,1,3,1,1,2,3,3,3,3,1,1,2,1,1,2,3,2,1,2,2,1,3,1,2,2,2,2,1,3,3,2,2,2,2,2,3,3,2,1,2,1,1,2,2,1,2,1,3,1,3,3,3,1,3,2,1,1,2,2,3,1,2,3,3,2,1,2,3,2,2,1,2,1,2,3,3,2,1,2,3,2,1,3,1,1,2,2,3,1,2,2,1,2,2,2,1,3,1,1,3,2,3,1,1,2,2,2,3,2,1,3,1,2,2,1,3,1,3,3,2,2,1,1,1,1,1,2,2,1,2,3,3,2,1,1,3,1,3,1,3,1,1,1,2,2,3,1,3,2,2,2,1,1,1,2,2,1,1,2,3,2,3,1,2,3,3,3,1,3,3,3,3,2,2,2,2,2,3,2,2,3,2,2,1,1,2,3,2,1,2,2,1,2,2,2,3,1,3,3,3,2,3,2,1,2,1,1,3,3,2,2,2,3,1,1,2,3,1,2,3,2,1,3,1,1,2,2,2,1,1,2,3,1,2,2,2,3,1,3,2,3,2,1,1,1,1,2,1,3,1,1,2,1,2,2,1,2,3,1,2,3,1,3,2,3,1,1,2,3,1,2,1,1,1,1,3,2,1,1,3,3,1,3,3,3,1,1,3,1,2,2,1,3,1,3,1,3,3,3,2,3,1,3,3,3,3,2,1,1,2,2,3,3,2,3,2,2,1,2,3,2,2,2,1,2,1,3,3,2,2,3,1,2,2,2,2,3,3,2,1,2,2,1,2,2,3,2,2,2,2,3,2,2,2,3,1,1,2,1,1,2,1,3,1,1,2,3,3,3,3,3,3,1,3,1,2,2,3,2,1,3,3,1,1,1,3,3,2,3,1,2,3,2,3,3,3,3,1,2,2,1,1,2,1,2,3,1,2,1,3,2,2,3,2,2,3,1,3,1,1,3,3,2,1,2,3,3,1,2,3,3,1,2,3,3,1,2,1,3,2,2,1,3,2,1,1,1,3,3,2,3,1,2,3,1,3,2,1,3,3,1,3,1,1,3,3,3,2,3,1,2,2,1,2,2,2,2,2,2,1,2,2,2,3,1,2,3,3,2,2,3,1,2,2,3,3,1,2,2,3,1,1,2,2,3,1,1,2,1,3,1,3,1,3,3,3,3,3,3,1,1,1,3,1,2,2,1,2,3,2,3,3,2,3,1,2,2,2,2,3,1,3,2,3,2,1,2,2,1,3,3,2,3,2,3,1,3,1,3,1,3,2,2,2,2,3,1,1,1,3,1,3,2,2,1,3,3,1,1,3,1,2,3,2,1,1,3,1,3,1,1,3,3,1,3,1,1,1,1,1,2,3,1,3,2,3,2,2,3,2,1,2,1,1,3,2,1,1,3,1,3,3,3,1,2,2,3,2,1,1,3,3,1,3,1,1,2,1,3,2,2,1,1,3,1,3,2,1,2,2,2,3,1,2,1,3,3,2,2,3,2,1,2,2,3,3,1,3,2,3,2,3,3,1,2,1,2,3,2,1,2,3,1,3,3,3,2,1,1,3,3,2,2,3,1,1,3,3,2,3,2,1,3,2,2,1,1,3,3,2,2,3,3,2,3,3,1,2,1,3,2,2,3,3,3,1,2,2,2,2,1,1,2,2,3,3,2,1,2,3,1,1,3,2,1,2,2,1,1,3,1,1,2,2,1,3,3,3,1,1,2,1,3,3,3,3,2,1,2,1,1,2,1,1,3,2,3,1,1,2,1,1,3,2,3,1,3,1,2,3,3,2,1,3,2,2,2,3,1,1,3,1,1,3,2,1,1,3,3,1,2,1,1,3,3,2,2,1,2,1,3,3,1,3,2,3,2,1,1,3,3,2,3,2,1,3,3,3,2,1,1,1,3,1,2,1,3,2,2,1,1,2,3,1,3,3,1,3,2,3,3,2,2,2,1,1,1,1,1,1,1,3,1,3,2,3,1,2,3,3,1,1,1,1,1,3,1,2,1,3,1,3,2,1,2,2,2,3,3,1,3,1,2,3,1,1,2,3,1,3,3,3,2,1,2,1,2,2,2,2,1,3,2,1,1,1,3,3,1,3,2,3,1,1,1,3,2,2,3,3,3,3,3,1,1,1,2,2,1,3,1,2,1,3,3,2,1,3,2,1,3,1,2,1,2,1,1,1,2,3,1,1,1,2,2,2,3,1,1,2,2,3,3,3,1,3,3,1,2,2,1,2,3,1,2,3,1,3,3,1,3,3,3,2,3,3,3,3,3,3,2,3,3,3,3,1,1,3,2,1,2,1,3,2,3,1,1,2,2,1,1,1,1,2,1,1,3,2,1,3,3,3,2,1,3,1,2,3,2,3,2,2,2,3,1,1,3,3,3,2,3,3,2,1,1,3,3,3,1,1,3,2,3,1,3,3,2,2,2,2,1,2,3,1,2,3,2,1,1,3,2,2,1,2,3,2,1,1,1,3,3,3,1,3,3,2,3,1,2,3,3,3,2,1,2,2,1,3,3,2,2,2,1,1,3,2,1,3,2,3,2,2,1,3,2,3,1,3,3,1,1,1,2,1,2,2,2,3,1,1,2,3,3,3,3,1,3,3,1,3,2,2,1,3,1,2,3,1,2,1,3,1,2,2,3,2,2,1,2,1,2,3,3,3,1,2,1,3,1,1,3,1,3,1,1,3,1,3,1,2,1,3,3,2,2,1,1,2,3,2,2,1,3,2,1,2,3,1,2,3,2,2,1,3,1,3,2,1,1,3,2,3,1,1,2,2,2,3,3,1,1,3,2,2,1,2,2,1,1,2,2,3,1,1,2,2,2,1,1,3,1,1,3,2,3,1,2,1,2,1,2,1,1,2,2,3,3,2,2,2,3,1,3,2,2,2,1,1,1,2,2,3,1,1,2,3,1,1,2,2,1,2,1,1,1,1,3,1,2,3,1,2,1,3,1,3,1,2,3,1,3,3,2,2,3,1,3,2,2,3,3,1,1,3,3,2,1,2,3,2,2,1,3,1,3,3,2,2,1,3,1,1,3,2,3,3,2,2,3,1,2,3,2,1,1,3,3,3,2,3,1,1,3,3,2,2,2,1,2,1,3,1,1,2,3,3,1,1,3,3,1,3,3,1,2,1,2,2,2,3,2,2,3,1,1,2,1,3,2,2,1,1,3,3,3,3,2,2,1,2,1,1,3,3,1,1,2,3,1,3,1,1,3,2,3,1,3,2,2,2,2,3,1,1,1,2,1,3,1,2,1,1,3,3,2,2,1,1,1,2,2,1,1,1,2,3,2,2,3,2,1,2,2,3,2,1,3,3,2,2,1,3,3,1,2,1,3,3,3,3,1,2,2,1,1,1,3,2,2,2,2,1,3,3,2,1,3,2,2,3,2,2,1,2,1,2,1,1,1,3,2,3,1,2,2,2,2,3,2,2,3,3,1,2,3,3,3,3,1,2,3,3,3,1,2,1,1,3,1,2,2,3,1,3,2,2,3,2,3,3,2,3,1,2,2,2,2,2,2,1,3,1,2,1,3,3,3,2,3,1,1,2,3,3,1,2,1,1,2,3,2,3,3,2,1,3,3,3,1,2,2,2,3,2,3,3,1,3,1,3,1,3,2,3,3,1,3,2,2,2,2,1,3,1,2,2,3,3,1,2,2,3,2,2,1,1,1,3,2,3,3,2,3,1,1,1,2,1,2,1,3,1,1,1,1,1,1,2,3,2,3,1,3,3,2,1,3,3,2,2,3,2,3,1,2,1,2,1,2,2,3,2,1,3,2,2,3,3,1,1,1,3,3,3,2,2,3,2,2,2,3,1,2,1,1,3,1,3,3,3,2,1,3,2,2,3,1,3,3,2,1,2,3,3,1,2,3,2,1,1,3,1,2,1,3,2,1,1,3,1,3,2,1,2,1,1,2,2,2,3,1,3,1,3,1,1,1,2,3,2,1,3,2,1,3,2,2,2,1,1,1,3,3,1,1,3,3,2,2,2,1,1,2,1,2,1,3,3,3,1,1,1,1,2,1,1,3,2,1,1,3,3,3,3,1,2,3,3,2,1,2,1,3,2,3,1,2,1,1,2,3,2,3,2,3,3,2,1,1,3,2,1,2,2,3,3,3,3,2,2,2,1,3,3,3,2,1,3,3,2,1,1,3,2,1,2,2,2,3,1,1,1,3,3,2,3,3,3,3,2,3,2,2,3,1,1,1,3,2,3,2,2,1,1,3,1,3,1,1,2,2,1,3,3,3,2,1,1,3,3,1,2,2,3,3,1,1,1,3,2,3,2,3,3,2,1,1,1,1,2,3,2,3,3,1,1,3,1,2,1,1,2,2,2,2,1,3,1,3,3,3,3,3,3,3,1,3,3,2,1,1,2,2,1,2,3,2,3,1,3,1,1,3,2,1,2,1,2,2,3,1,2,1,3,2,1,3,2,3,3,2,3,3,1,3,2,2,1,3,2,2,3,2,2,2,1,2,3,2,3,3,3,2,3,1,3,3,1,3,3,3,3,1,2,2,2,1,3,3,3,2,3,1,1,2,3,3,3,1,3,3,1,2,3,1,3,1,3,2,1,1,3,3,3,2,2,3,3};ListNode *head = new ListNode(0);int i;for(i = 0; i < sizeof(data) / sizeof(int); i++){ListNode node = ListNode(data[i]);node.next = head->next;head->next = &node;}Stopwatch ^ stopwatch = Stopwatch::StartNew();head = sortList(head);head = head->next;while(head != NULL){cout<<head->val<<endl;head = head->next;}stopwatch->Stop();cout<<"time:"<<stopwatch->ElapsedMilliseconds<<endl;//function endsystem("PAUSE");return 0;}
所以针对相同数字进行一下改进就AC了:
/** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode(int x) : val(x), next(NULL) {} * }; */class Solution {public: ListNode ** listqsort(ListNode ** l) { ListNode *start; ListNode *end; ListNode *finish; ListNode *tmp; start = l[0]->next; end = l[0]->next; finish = l[1]; if ( start->next == finish) { return l; } ListNode *middle, *middle2, *p; middle = l[0]->next; middle2 = middle; p = start->next; //nodes before middle are less than middle, nodes behind are equal or larger while(p->next != finish){ tmp = p->next; if (p->val < middle->val) { p->next = start; start = p; }else if(p->val == middle->val){ if(p == middle2->next){middle2 = p; end = middle2;} else{ p->next = middle2->next; if(middle2 == end)end = p; middle2->next = p; middle2 = p; } }else{ end->next = p; end = p; } p = tmp; } //last node if (p->val < middle->val) { p->next = start; start = p; }else if(p->val == middle->val){ if(p == middle2->next){ middle2 = p; end = middle2; }else{ p->next = middle2->next; if(middle2 == end)end = p; middle2->next = p; middle2 = p; } }else{ end->next = p; end = p; } end->next = finish; end = finish; l[0]->next = start; ListNode **result = (ListNode **) malloc(sizeof(ListNode*) * 2); if(start == middle || start->next == middle){ result[0] = l[0]; }else{ ListNode **before = (ListNode **) malloc(sizeof(ListNode*) * 2); before[0] = l[0]; before[1] = middle; before = listqsort(before); result[0] = before[0]; free(before); before = NULL; } if(middle2 == end || middle2->next == end){ result[1] = end; }else{ ListNode **behind = (ListNode **) malloc(sizeof(ListNode*) * 2); behind[0] = middle2; behind[1] = end; behind = listqsort(behind); result[1] = behind[1]; free(behind); behind = NULL; } return result; } ListNode *sortList(ListNode *head) { if(head == NULL)return head; ListNode ** result = (ListNode **) malloc(sizeof(ListNode*) * 2); result[0] = new ListNode(0); result[0]->next = head; result[1] = NULL; result = listqsort(result); head = result[0]->next; free(result); return head; }};
再上一个leetcode上有人发的,归并排序思想的算法:
class Solution { public: ListNode *sortList(ListNode *head) { if(!head || !head -> next) return head; ListNode * cur = head; int len = 0; while (cur) len++, cur = cur -> next; ListNode * ans = new ListNode(0); ans -> next = head; for (int width = 1; width < len; width += width){ ListNode * start1, *end1, *start2, *end2, *last; last = ans; while (last -> next) { start1 = last -> next; end1 = move(width, start1); if(end1) start2 = end1; else break; end2 = move(width, start2); ListNode * next_for_last = end2 ; ListNode * new_last; last -> next = mergeSort(start1, end1, start2, end2, new_last); last = new_last; last -> next = next_for_last; } } return ans -> next; } private: ListNode * move (int k, ListNode * cur) { for (int i = 0; i < k && cur; i++) cur = cur -> next; return cur; } ListNode * mergeSort (ListNode * start1, ListNode * end1, ListNode * start2, ListNode * end2, ListNode * &new_last) { if (!start1) return start2; if (!start2) return start1; ListNode * merge , *head; if (start1 -> val < start2 -> val) { merge = start1; start1 = start1 -> next; } else { merge = start2; start2 = start2 -> next; } head = merge; while (start1 != end1 && start2 != end2) { if (start1->val < start2->val) { merge -> next = start1; start1 = start1 -> next; } else { merge -> next = start2; start2 = start2 -> next; } merge = merge -> next; } while (start1 != end1) { merge -> next = start1; start1 = start1 -> next; merge = merge -> next; } while (start2 != end2) { merge -> next = start2; start2 = start2 -> next; merge = merge -> next; } new_last = merge; return head; }};
效率上来说比快排还稍微好一点,30000个数字大概190ms,快排是230ms.
0 0
- [leetcode][list][sort] Sort List
- Insertion Sort List | leetcode
- Leetcode: Insertion Sort List
- [LeetCode] Insertion Sort List
- Leetcode: Insertion Sort List
- Leetcode: Sort List
- Sort List | leetcode
- leetcode-Sort List
- leetcode-Insertion Sort List
- LeetCode题解:Sort List
- leetcode 134: Sort List
- [LeetCode]Sort List
- [LeetCode]Insertion Sort List
- [LeetCode] Sort List
- 【LeetCode】Insertion Sort List
- leetCode - Sort List
- LeetCode | Insertion Sort List
- LeetCode - Insertion Sort List
- LeetCode OJ - Merge Sorted Array & Merge Two Sorted Lists
- 方格取数
- 为什么选择 Yeoman 及 Yeoman 的安装(推荐)
- 学学time line js~~~
- 分数数列
- leetcode sort list
- add/remove operation is impossible, because the code element 'Cxxx' is read only
- spring学习之@ModelAttribute运用详解
- UVA 1156 - Pixel Shuffle(模拟+置换)
- 【分享】Linux平台服务读取文件时诡异现象
- 线性查找的JAVA实现
- Android Providing Up Navigation 提供向上的导航
- LeetCode OJ算法题(二十五):Remove Duplicates from Sorted Array
- 管理看板-统计图组件联动功能