diff --git a/CombinatorialOptimisation/SAT.hi b/CombinatorialOptimisation/SAT.hi
new file mode 100644
Binary files /dev/null and b/CombinatorialOptimisation/SAT.hi differ
diff --git a/CombinatorialOptimisation/SAT.hs b/CombinatorialOptimisation/SAT.hs
--- a/CombinatorialOptimisation/SAT.hs
+++ b/CombinatorialOptimisation/SAT.hs
@@ -29,7 +29,7 @@
   numUnSATEDClauses,getTrueFalseCount,summariseSAT,makeRandomSATProblem,flipVariable,satproblem,setAllVars,randomiseVariables
 )where
 
-import qualified Data.Map as M
+import qualified Data.IntMap as IM
 import qualified Data.Array as A
 import Data.List
 import System.Random
@@ -41,8 +41,8 @@
                                numVariables :: Int,
                                variableLookUp :: Int->([Int],[Int]),
                                clauseLookUp :: Int->([Int],[Int]),
-                               variablePosition :: M.Map Int Bool,
-                               clausePosition :: M.Map Int Int}
+                               variablePosition :: IM.IntMap Bool,
+                               clausePosition :: IM.IntMap Int}
 
 instance Eq SATProblem where
   (==) s1 s2 = (numSATEDClauses s1) == (numSATEDClauses s2) && (variablePosition s1) == (variablePosition s2)
@@ -57,7 +57,7 @@
       it returns the number of variables in the True, and False positions. -}
 
 getTrueFalseCount :: SATProblem->(Int,Int)
-getTrueFalseCount s = let ls = M.elems $ variablePosition s
+getTrueFalseCount s = let ls = IM.elems $ variablePosition s
                       in (length (filter (==True) ls),length (filter (==False) ls))
 
 {- |  The number of unsatisfied clauses in the problem, the inverse of @numSATEDClauses@ -}
@@ -90,7 +90,7 @@
 {- |  Partial display function, for usage in show, displays the setting of each variable. -}
 
 showVARPosition :: SATProblem->String
-showVARPosition s = concat [concat ["  x",show v," = ",show t,"\n" ]   |(v,t)<- M.assocs (variablePosition s)]
+showVARPosition s = concat [concat ["  x",show v," = ",show t,"\n" ]   |(v,t)<- IM.assocs (variablePosition s)]
 
 {- |  Alternative constructor for the data structure. Takes only those elements that can 
       not be derived and correctly initialises the other components, such as calculating 
@@ -101,17 +101,17 @@
       is present), the lookup table for clauses (clause index to lists of variable indexes) 
       and the current settings of each variable. -}
 
-satproblem :: Int->Int->(Int->([Int],[Int]))->(Int->([Int],[Int]))->M.Map Int Bool->SATProblem
+satproblem :: Int->Int->(Int->([Int],[Int]))->(Int->([Int],[Int]))->IM.IntMap Bool->SATProblem
 satproblem nClauses nVars varLookup claLookup varPosition
   = SATProblem nClauses satClause nVars varLookup claLookup varPosition finalClausePosition
   where
     varList = [0 .. nVars -1]
-    initialClausePositions = M.fromList $ zip [0 .. nClauses -1] $ repeat 0 
-    finalClausePosition = foldl f M.empty [0 .. nVars -1]
+    initialClausePositions = IM.fromList $ zip [0 .. nClauses -1] $ repeat 0 
+    finalClausePosition = foldl f IM.empty [0 .. nVars -1]
     f m v = let (ords,negs) = varLookup v
-                varPos = varPosition M.! v
-            in if varPos then foldl (\m' c->M.adjust (+1) c m') m ords else foldl (\m' c->M.adjust (+1) c m') m negs
-    satClause = sum $ map (\x->if x ==0 then 0 else 1) (M.elems finalClausePosition)
+                varPos = varPosition IM.! v
+            in if varPos then foldl (\m' c->IM.adjust (+1) c m') m ords else foldl (\m' c->IM.adjust (+1) c m') m negs
+    satClause = sum $ map (\x->if x ==0 then 0 else 1) (IM.elems finalClausePosition)
 
 {- |  For rapid initialisation of problem instances. This fixes the setting of 
       all variables to either true or false. The effect this has on the number 
@@ -120,7 +120,7 @@
 setAllVars :: Bool->SATProblem->SATProblem
 setAllVars b s = satproblem (numClauses s) (numVariables s) (variableLookUp s) (clauseLookUp s) initialVarPosition
   where
-    initialVarPosition = M.fromList $ zip [0 .. numVariables s -1] $ repeat b
+    initialVarPosition = IM.fromList $ zip [0 .. numVariables s -1] $ repeat b
 
 {- |  For rapid initialisation of problem instances for usage in stochastic algorithms. 
       Specifically expected to be used for genetic algorithms and other forms of 
@@ -129,7 +129,7 @@
 randomiseVariables :: RandomGen g=>g->SATProblem->SATProblem
 randomiseVariables g s = satproblem (numClauses s) (numVariables s) (variableLookUp s) (clauseLookUp s) varpos  
   where
-    varpos = M.fromList $ zip [0 .. (numVariables s) -1] $ (randoms g :: [Bool])
+    varpos = IM.fromList $ zip [0 .. (numVariables s) -1] $ (randoms g :: [Bool])
 
 {- |  I am not sure how often this will be used in practice, as randomly created problems
       often seem to be quite easy to solve. Requires a source of random numbers, the number
@@ -140,7 +140,7 @@
 makeRandomSATProblem gen numVariables numClauses 
   = satproblem numClauses numVariables varLookup claLookup initialVarPosition 
   where
-    initialVarPosition = M.fromList $ zip [0 .. numVariables -1] $ repeat False
+    initialVarPosition = IM.fromList $ zip [0 .. numVariables -1] $ repeat False
     clauses = take numClauses $ nub (unfoldr generateRandomClause gen)
     generateRandomClause g = let f (ms,ns) gen'
                                    | length ms + length ns == 3 = (ms,ns,gen')
@@ -152,11 +152,11 @@
                                                                              else f (ms,n:ns) gen'''
                                  (ords,negs,g') = f ([],[]) g
                              in Just ((sort ords,sort negs),g')
-    emptyClauseData = M.fromList $ zip [0 .. numVariables -1] (repeat ([],[]))
+    emptyClauseData = IM.fromList $ zip [0 .. numVariables -1] (repeat ([],[]))
     basicClauseLookup = foldl constructClauseLookup emptyClauseData $ zip [0..] clauses
-    varLookup = ((A.listArray (0,numVariables-1) (M.elems basicClauseLookup)) A.!)
-    constructClauseLookup m (clauseIndex,(ords,negs)) = let addNeg m' x = M.adjust (\(as,bs)->(as,clauseIndex:bs)) x m'
-                                                            addOrd m' x = M.adjust (\(as,bs)->(clauseIndex:as,bs)) x m'
+    varLookup = ((A.listArray (0,numVariables-1) (IM.elems basicClauseLookup)) A.!)
+    constructClauseLookup m (clauseIndex,(ords,negs)) = let addNeg m' x = IM.adjust (\(as,bs)->(as,clauseIndex:bs)) x m'
+                                                            addOrd m' x = IM.adjust (\(as,bs)->(clauseIndex:as,bs)) x m'
                                                         in foldl addNeg (foldl addOrd  m  ords) negs
     claLookup = ((A.listArray (0,numVariables-1) clauses) A.!)
 
@@ -167,20 +167,20 @@
                                                         
 flipVariable :: Int->SATProblem->(SATProblem,Int)
 flipVariable v s 
-  = let modifiedVarPos = M.insert v changedVar (variablePosition s)
+  = let modifiedVarPos = IM.insert v changedVar (variablePosition s)
     in (s{numSATEDClauses=numSATEDClauses s + overAllChange,variablePosition=modifiedVarPos,clausePosition=modifiedClausePos},overAllChange)
   where
     overAllChange = ordChange + negChange
-    changedVar  = not $ (variablePosition s) M.! v
+    changedVar  = not $ (variablePosition s) IM.! v
     (ords,negs) = (variableLookUp s) v
     cp = clausePosition s
     (cp',ordChange) = if changedVar then foldl countInc (cp,0) ords else foldl countDec (cp,0) ords
     (modifiedClausePos,negChange) = if changedVar then foldl countDec (cp',0) negs else foldl countInc (cp',0) negs
-    countInc (positions,counter) i = let current =  positions M.! i
+    countInc (positions,counter) i = let current =  positions IM.! i
                                          counter' = if current == 0 then counter+1 else counter
-                                     in (M.insert i (current+1) positions,counter')
-    countDec (positions,counter) i = let current =  positions M.! i
+                                     in (IM.insert i (current+1) positions,counter')
+    countDec (positions,counter) i = let current =  positions IM.! i
                                          counter' = if current == 1 then counter-1 else counter
-                                     in (M.insert i (current-1) positions,counter')
+                                     in (IM.insert i (current-1) positions,counter')
 
 
diff --git a/CombinatorialOptimisation/SAT.o b/CombinatorialOptimisation/SAT.o
new file mode 100644
Binary files /dev/null and b/CombinatorialOptimisation/SAT.o differ
diff --git a/CombinatorialOptimisation/TSP.hi b/CombinatorialOptimisation/TSP.hi
new file mode 100644
Binary files /dev/null and b/CombinatorialOptimisation/TSP.hi differ
diff --git a/CombinatorialOptimisation/TSP.hs b/CombinatorialOptimisation/TSP.hs
--- a/CombinatorialOptimisation/TSP.hs
+++ b/CombinatorialOptimisation/TSP.hs
@@ -42,12 +42,13 @@
 ----------------------------------------------------------------------------- 
 
 module CombinatorialOptimisation.TSP(
-  TSPProblem(TSPProblem,routeMap,numCities,routeElementToIndex,indexToRouteElement),
-  edgeCost,solutionValue,getTSPPathAsList,
+  TSPProblem(TSPProblem,numCities,cityNameToIndex,indexToCityName,solutionValueI,edgeCostI),
+  edgeCost,solutionValue,getTSPPathAsList,routeMap,generateDirectionalRouteMap,
   InternalStorage(ExplicitMatrix,TriangularMatrix,Recomputation),
   showEdgeWeights,
-  exchangeCities,
-  exchangeCitiesOnIndex,
+  swapCities,
+  swapCitiesOnIndex,
+  kFragments,allVariations,minimumVariation, stochasticReversal, shuffleFragments,
   evaluateRouteNaive,
   randomiseRoute,
   setRoute,
@@ -57,6 +58,7 @@
 )where
 
 import qualified Data.Map as M
+import qualified Data.IntMap as IM
 import qualified Data.Array as A
 import System.Random
 import Data.List
@@ -80,13 +82,40 @@
 -}
 
 data TSPProblem = TSPProblem { solutionValueI :: FP,
-                               routeMap :: M.Map Int (Int,Int),
                                edgeCostI :: (Int->Int->FP),
                                numCities :: Int,
-                               routeElementToIndex :: M.Map Int Int,
-                               indexToRouteElement :: M.Map Int Int
+                               cityNameToIndex :: IM.IntMap Int,
+                               indexToCityName :: IM.IntMap Int
                              }
 
+cityAtIndex :: TSPProblem->Int->Int
+cityAtIndex t i | i>=numCities t = cityAtIndex t (i-numCities t)
+                | otherwise = indexToCityName t IM.! i
+
+{- |  Will generate an IntMap of the path, giving city to next and last city names as the structure.
+      This is effectively the edges involved in the process. Wow, how badly written was that. -}
+generateDirectionalRouteMap :: TSPProblem->IM.IntMap (Int,Int)
+generateDirectionalRouteMap t | null path        = IM.fromList []
+                              | length path == 1 = IM.fromList [(head path,(head path,head path))]
+                              | otherwise        = IM.fromList path'
+  where
+    path = IM.elems . routeMap $ t
+    end = last path
+    fr = (head path,(end,path !! 1))
+    bk = (end,(last . init $ path,head path))
+    path' = fr:[(b,(a,c)) | (a,b,c)<-zip3 path (tail path) (tail $ tail path)]++[bk]
+
+{- |  The definition of equality is quite slow, it will check the internal representation of the path that 
+the solution follows. -}
+instance Eq TSPProblem where
+  a == b = cityNameToIndex a == cityNameToIndex b 
+
+{- | The definition of orderability is much faster, coming down to a simple integer comparison.-}
+instance Ord TSPProblem where
+  compare a b = compare (solutionValueI a) (solutionValueI b)
+
+routeMap = indexToCityName
+
 {- | Internally the value of the solution is stored as a fixed point value, stored in an Int64 data type. 
      For external visibility however this function is provided, converting the value into a floating point numbers. 
 -}
@@ -113,13 +142,12 @@
 
 instance Show TSPProblem where
   show t = concat ["TSPProblem of ",show . numCities $ t,
-                   " cities\n    Current Solution ",show . getTSPPathAsList $ t,
+                   " cities\n    Current Solution ",show . getTSPPathAsList 0 $ t,
                    "\n    Costing ",show . solutionValue $ t,"\n"]
 
-getTSPPathAsList :: TSPProblem->[Int]
-getTSPPathAsList t = let rm = snd . ((M.!) (routeMap t))
-                     in 0:(takeWhile (\x->x/=0) $ iterate rm (rm 0))++[0]
-
+getTSPPathAsList :: Int->TSPProblem->[Int]
+getTSPPathAsList alignOn t = let (as,bs) = span (/=alignOn) . IM.elems . routeMap $ t in bs++as
+                     
 {- |  Converts the lookup table of a problem into a comma and newline delimited
       string. This should facilitate copying into spreadsheets for checking the 
       problem being used and validating solutions by hand. -}
@@ -136,11 +164,11 @@
       in the path. It looks up the current indexes by city name and passes the work off to 
       @exchangeCitiesOnIndex@.  -}
 
-exchangeCities :: Int->Int->TSPProblem->TSPProblem
-exchangeCities a b t = exchangeCitiesOnIndex i1 i2 t 
+swapCities :: Int->Int->TSPProblem->TSPProblem
+swapCities a b t = swapCitiesOnIndex i1 i2 t 
   where
-    i1 = routeElementToIndex t M.! a
-    i2 = routeElementToIndex t M.! b
+    i1 = cityNameToIndex t IM.! a
+    i2 = cityNameToIndex t IM.! b
  
 {- |  Performs the bulk of the work for exchanging elements of the cycle.
       This version no longer assumes the indices are ordered due to confusion this
@@ -148,52 +176,56 @@
       0 and last. This is now fixed.
  -}
 
-exchangeCitiesOnIndex :: Int->Int->TSPProblem->TSPProblem
-exchangeCitiesOnIndex i1 i2 t 
-  | i1 > i2 = exchangeCitiesOnIndex i2 i1 t
+swapCitiesOnIndex :: Int->Int->TSPProblem->TSPProblem
+swapCitiesOnIndex i1 i2 t 
+  | i1 > i2 = swapCitiesOnIndex i2 i1 t
   | d == 0 = t
-  | d == 1 = t{routeMap=rAdj,solutionValueI=solutionValueI t + priceChangeAdj,routeElementToIndex=t2',indexToRouteElement=t1'}
-  | d == (numCities t -1) = t{routeMap=rAdj',solutionValueI=solutionValueI t + priceChangeAdj',routeElementToIndex=t2',indexToRouteElement=t1'}
-  | otherwise = t{routeMap=r',solutionValueI=solutionValueI t + priceChange,routeElementToIndex=t2',indexToRouteElement=t1'}
+  | d == nc = t{solutionValueI=solutionValueI t + priceChangeAdjC,
+                          cityNameToIndex=cnti,
+                          indexToCityName = itcn}  -- adjacent wrap around
+  | d == 1   = t{solutionValueI=solutionValueI t + priceChangeAdjA,
+                          cityNameToIndex=cnti,
+                          indexToCityName = itcn}  -- adjacent indexes
+  | otherwise = t{solutionValueI=solutionValueI t + priceChangeAdjB,
+                          cityNameToIndex=cnti,
+                          indexToCityName = itcn}
   where 
-    d = abs (i1 - i2)
-
-    -- basic setup
-    r = (routeMap t)
-    a = indexToRouteElement t M.! i1
-    b = indexToRouteElement t M.! i2
+    d = i2 - i1
+	
+    -- basic setup (common code)
+    t1 = indexToCityName t
+    a = t1 IM.! i1
+    b = t1 IM.! i2
     p = edgeCostI t
-    ((a1,a2),(b1,b2)) = (r M.! a,r M.! b)
+    nc = numCities t -1
 
-    -- usual code
-    priceChange = sum [p a1 b,p b a2,p b1 a,p a b2] - sum [p a a2,p b b2,p a1 a,p b1 b]
-    r' = foldl' (\m (k,f) -> M.adjust f k m) r [(a,\_->(b1,b2)),(b,\_->(a1,a2)),(a1,\(x,y)->(x,b)),(a2,\(x,y)->(b,y)),(b1,\(x,y)->(x,a)),(b2,\(x,y)->(a,y))]
+    -- index exchange (common code)
+    itcn = IM.insert i2 a (IM.insert i1 b t1)
+    cnti = IM.insert b i1 (IM.insert a i2 $ cityNameToIndex t)      
 
-    -- index exchange
-    t1 = indexToRouteElement t
-    t2 = routeElementToIndex t
-    t2' = M.insert b i1 (M.insert a i2 t2) 
-    t1' = M.insert i1 b (M.insert i2 a t1) 
-    
-    -- adjacent exchange, special case
-    -- failed code => priceChangeAdj = sum [p a1 b,p b a,p a b2] - sum[p a1 a,p a b,p b b2]
-    priceChangeAdj = sum $ zipWith (-) [p a1 b,p b a,p a b2] [p a1 a,p a b,p b b2]
-    rAdj = foldl' (\m (k,f) -> M.adjust f k m) r [(a1,\(x,y)->(x,b)),(b2,\(x,y)->(a,y)),(a,\_->(b,b2)),(b,\_->(a1,a))]
-    -- special adjacent, first and last
-    priceChangeAdj' = sum $ zipWith (-) [p b1 a,p a b,p b a2] [p b1 b,p b a,p a a2]
-    rAdj' = foldl' (\m (k,f) -> M.adjust f k m) r [(a2,\(x,y)->(b,y)),(b1,\(x,y)->(x,a)),(a,\_->(b1,b)),(b,\_->(a,a2))]
+    -- find related cities
+    a1 = if i1 == 0 then t1 IM.! nc  else t1 IM.! (i1 -1) 
+    a2 = t1 IM.! (i1 +1)
+    b1 = t1 IM.! (i2 -1)
+    b2 = if i2 == nc then t1 IM.! 0 else t1 IM.! (i2 +1) 
 
+    -- pricing codes
+    priceChangeAdjB = sum [p a1 b,p b a2,p b1 a,p a b2] - sum [p a a2,p b b2,p a1 a,p b1 b] 
+    priceChangeAdjA = sum [p a1 b,p b a,p a b2] - sum [p a1 a,p a b,p b b2]  
+    priceChangeAdjC = sum [p b1 a,p a b,p b a2] - sum [p b1 b,p b a,p a a2]  
+
 {- |  A brute force recalculation of the current length of the path. Use sparingly.-}
 
 evaluateRouteNaive :: TSPProblem->TSPProblem
-evaluateRouteNaive t = t{solutionValueI=evalRoute 0}
+evaluateRouteNaive t = t{solutionValueI=sum' 0 rm (tail $ cycle rm)}
+   -- . zipWith ep rm $ (tail $ cycle rm)} -- evalRoute rm}
   where
     ep = edgeCostI t
-    rm = snd . ((M.!) (routeMap t))
-    evalRoute x = let n = rm x
-                  in if n==0 then ep x n 
-                             else ep x n + evalRoute n
-
+    rm = IM.elems (routeMap t)
+    sum' v [x] (y:_) = v+ep x y
+    sum' v (x:xs) (y:ys) = let n = ep x y + v in n `seq` sum' n xs ys
+                          
+   
 {- |  Take a path through the system and a problem, insert the path into the system, 
       calculating distances and setting up appropriate look up tables. It does not
       validate the list in terms of going through all the cities, or going through 
@@ -201,20 +233,64 @@
       very very fast). It does organise the list so that the starting node is vertex 0. 
 
       Uses the @evaluateRouteNaive@ to calculate the length of the path via a brute
-      force method. This is not expected to be used frequently. -}
+      force method. This is not expected to be used frequently. -}  
 
 setRoute :: [Int]->TSPProblem->TSPProblem
-setRoute path t = evaluateRouteNaive t{routeMap=newRoute,indexToRouteElement=in1,routeElementToIndex=in2} 
+setRoute path t = evaluateRouteNaive t{indexToCityName=in1,cityNameToIndex=in2} 
   where
-    l = dropWhile (/=0) $ cycle path 
-    l' = tail l
-    l'' = tail l'
-    (k,k':_) = span (\(_,x,_)->x/=0) $ zip3 l l' l''
-    newRoute = foldl' (\m (a,b,c) -> M.insert b (a,c) m) M.empty (k':k)
-    in1 = M.fromList $ zip [0..] (take (numCities t) l)
-    in2 = M.fromList . (map swap) . M.assocs $ in1
-    swap (a,b)  = (b,a)
+    in1 = IM.fromList $ zip [0..] path
+    in2 = IM.fromList $ zip path [0..]
 
+{- |  An implementation of kexchange methods as a series of combinators. kFragments
+      will break a problem at specified edges and give back the path segments. 
+      allVariations will take a set of segments and give back every possible combination of them, 
+      and their reversals (I feel this should be broken down further, due to similarities with the 
+      stochastic segment reversal method). allVariations is also a more general function than 
+      the others, not actually requiring reference to TSP. 
+      minimumVariation is expected to be used with a set of paths (probably generated by the above two methods)
+      and give only the best.
+      
+      stochasticReversal and shuffleFragments are similarly not really approapriate just here, but for now they 
+      stay. Together they allow for less detailed k-exchange methods, for example, rather than exhaustively creating 
+      variations, we will use it as a mutator for a GA. For this we might want to only create 1 permutation, which 
+      can be done as; kFragments >>> shuffleFragments >>> stochasticReversal >>> \as->[concat as] >>> minimumVariation
+
+      kFragments will begin by being quite fragile. Please make sure that your input sequence is 
+      assending and does not include duplicates. Remember to initialise your route before calling this. -}
+
+kFragments :: [Int]->TSPProblem->[[Int]]
+kFragments (first:xs) t = (\(a,b)->a:b) $ foldl f (basePath,[])  xs
+  where
+    basePath = getTSPPathAsList (cityAtIndex t (first +1)) t
+    f (b,col) x = let c = cityAtIndex t (x+1)
+                  in (dropWhile (/=c) b,takeWhile (/=c) b:col)
+    
+allVariations :: Bool->[[Int]]->[[Int]]
+allVariations reversalAllowed fragments
+  | reversalAllowed = rebuildR fragments []
+  | otherwise       = rebuild fragments []
+  where
+    -- rebuildR :: [[Int]]->[Int]->[TSPProblem]
+    rebuild [] xs = [xs]
+    rebuild (x:xs) [] = rebuild xs x
+    rebuild xs cp = concat [ rebuild ys (x++cp) | (x,ys)<-dropEach xs]
+    rebuildR [] xs = [xs]
+    rebuildR (x:xs) [] = rebuildR xs x ++ rebuildR xs (reverse x)
+    rebuildR xs cp = concat [ rebuildR ys (x++cp) ++ rebuildR ys (reverse x ++cp) | (x,ys)<-dropEach xs] 
+    dropEach xs = f ([],xs)
+      where
+        f (as,b:[]) = (b,reverse as):[]
+        f (as,b:bs) = (b,reverse as ++ bs) : f (b:as,bs)
+  
+minimumVariation :: TSPProblem->[[Int]]->TSPProblem
+minimumVariation t = minimum . map (flip setRoute t) 
+
+shuffleFragments :: Ord a=>[a]->[[Int]]->[[Int]]
+shuffleFragments as = map snd . sortBy (\a b->compare (fst a) (fst b)) . zip as
+
+stochasticReversal :: [Bool]->[[Int]]->[[Int]]
+stochasticReversal as = zipWith (\a b->if a then reverse b else b) as
+
 {- |  Shuffles a simple list of cities and then passes off the work to setRoute. -}
 
 randomiseRoute :: RandomGen g=>g->TSPProblem->TSPProblem
@@ -234,7 +310,7 @@
         matrix = M.fromList $ zip cityCoords (map realToFrac $ randomRs distanceLimits g)
         -- p' = (\x y->M.findWithDefault 0 (x,y) matrix)
         explicit = A.listArray (0,numCities*numCities-1)  [M.findWithDefault 0 (a,b) matrix | a<-cities,b<-cities]
-    in TSPProblem 0 M.empty (\x y->explicit A.! (y * numCities + x)) numCities M.empty M.empty
+    in TSPProblem 0 (\x y->explicit A.! (y * numCities + x)) numCities IM.empty IM.empty
     -- TSPProblem 0 M.empty p numCities M.empty M.empty
 
 {- |  Construct a TSPProblem instance for a Symmetric TSP. That is, the distance
@@ -256,7 +332,7 @@
         triangular = A.listArray (0,sum [0..numCities])  [M.findWithDefault 0 (a,b) matrix | a<-cities,b<-[0..a]]
         p = if storageType == ExplicitMatrix then (\x y->explicit A.! (y * numCities + x))
                                              else (\x y->let x' = min x y; y' = max x y in triangular A.! (div (y'*y'+y') 2 + x'))
-    in TSPProblem 0 M.empty p numCities M.empty M.empty
+    in TSPProblem 0 p numCities IM.empty IM.empty
 
 {- |  Construct a TSPProblem instance for a Symmetric TSP. The route will not be
       initially set up, the dictionaries will be empty. This does create the 
@@ -278,7 +354,7 @@
               ExplicitMatrix -> \x y->explicit A.! (y * numCities + x)
               TriangularMatrix -> (\x y->let x' = min x y; y' = max x y in triangular A.! (div (y'*y'+y') 2 + x'))
               Recomputation -> \a b->if a == b then 0 else euclidianDistance (posArr A.! a) (posArr A.! b)
-    in TSPProblem 0 M.empty p numCities M.empty M.empty
+    in TSPProblem 0 p numCities IM.empty IM.empty
   where
     euclidianDistance :: (Double,Double)->(Double,Double)->FP
     euclidianDistance (a,b) (c,d) = realToFrac $ sqrt ((a-c)*(a-c)+(b-d)*(b-d))
diff --git a/CombinatorialOptimisation/TSP.o b/CombinatorialOptimisation/TSP.o
new file mode 100644
Binary files /dev/null and b/CombinatorialOptimisation/TSP.o differ
diff --git a/CombinatorialOptimisation/TSP/FixedPoint.hi b/CombinatorialOptimisation/TSP/FixedPoint.hi
new file mode 100644
Binary files /dev/null and b/CombinatorialOptimisation/TSP/FixedPoint.hi differ
diff --git a/CombinatorialOptimisation/TSP/FixedPoint.hs b/CombinatorialOptimisation/TSP/FixedPoint.hs
--- a/CombinatorialOptimisation/TSP/FixedPoint.hs
+++ b/CombinatorialOptimisation/TSP/FixedPoint.hs
@@ -21,17 +21,21 @@
 -- shifting, probably not that fast. 
 ----------------------------------------------------------------------------- 
 
-module CombinatorialOptimisation.TSP.FixedPoint (FP(FP)) where
+module CombinatorialOptimisation.TSP.FixedPoint (FP(FP),unwrappedFP,doubleToFP,fpToDouble) where
 
 import Data.Int
 import Data.Bits
 import Data.Ratio
+import Foreign.C.Types
 
+
 -- simple fixed point library, using 64 bit integers as the basis and 32 bits below the point (leaves 31 above, these are still signed)
 
 fixedPoint = 32
 divConstI = 2^fromIntegral fixedPoint
 divConstD = 2**fromIntegral fixedPoint
+divConstC :: CDouble
+divConstC = fromIntegral divConstI
 fpOne = fromInteger 1
 
 newtype FP = FP Int64 deriving (Eq,Ord)
@@ -51,14 +55,23 @@
 instance Fractional FP where
   (/) (FP a) (FP b) = FP $ fromInteger (div (shiftL (toInteger a) fixedPoint) (toInteger b))
   recip = (/) fpOne 
-  fromRational x = doubleToFP $ fromRational x
+  fromRational = doubleToFP . fromRational 
 
 instance Real FP where
   toRational (FP a) = (fromIntegral a) % divConstI
 
+  
+
+fpToDouble :: FP->Double
+fpToDouble (FP x) = realToFrac (fromIntegral x / divConstC) 
+
 doubleToFP :: Double->FP
-doubleToFP x = let (a,b) = properFraction x
-               in fromInteger a + FP (floor (b * divConstD)) 
+doubleToFP = FP . unwrappedFP
+
+unwrappedFP :: Double->Int64
+unwrappedFP x = let (a,b) = properFraction x
+                in (shiftL (fromInteger a) fixedPoint) + (floor (b * divConstD)) 
+ 
 
 five,six :: FP
 five = fromInteger 5
diff --git a/CombinatorialOptimisation/TSP/FixedPoint.o b/CombinatorialOptimisation/TSP/FixedPoint.o
new file mode 100644
Binary files /dev/null and b/CombinatorialOptimisation/TSP/FixedPoint.o differ
diff --git a/CombinatorialOptimisation/TSP/TestFixedPoint.hs b/CombinatorialOptimisation/TSP/TestFixedPoint.hs
new file mode 100644
--- /dev/null
+++ b/CombinatorialOptimisation/TSP/TestFixedPoint.hs
@@ -0,0 +1,44 @@
+-- don't know how to use small check at this point, going to go with an error based approach.
+
+import FixedPoint
+import System.Random
+
+main :: IO()
+main = do gen1<-newStdGen
+          let testGroup1 = makeTestGroup 500 gen1
+          gen2<-newStdGen
+          let testGroup2 = makeTestGroup 500 gen2
+          print "SUMMATIONS"
+          print $ ("Floats",sum testGroup1)
+          print $ ("Doubles",sum .con' $ testGroup1)
+          print $ ("FPs",sum . con $ testGroup1)
+          putStrLn ""
+          print "RECIPROCALS"
+          print $ ("Floats",sum $ map recip testGroup1)
+          print $ ("Doubles",sum $ map recip $ con' testGroup1)
+          print $ ("FPs",sum $ map recip $ con testGroup1)
+          putStrLn ""
+          print "SUM DIFF"
+          print $ ("Floats",sum $ zipWith (-) testGroup1 testGroup2)
+          print $ ("Doubles",sum $ zipWith (-) (con' testGroup1) (con' testGroup2))
+          print $ ("FPs",sum $ zipWith (-) (con testGroup1) (con testGroup2))
+          putStrLn ""
+          print "SUM DIV"
+          print $ ("Floats",sum $ zipWith (/) testGroup1 testGroup2)
+          print $ ("Doubles",sum $ zipWith (/) (con' testGroup1) (con' testGroup2))
+          print $ ("FPs",sum $ zipWith (/) (con testGroup1) (con testGroup2))
+          putStrLn ""
+          print "SUM MUL"
+          print $ ("Floats",sum $ zipWith (*) testGroup1 testGroup2)
+          print $ ("Doubles",sum $ zipWith (*) (con' testGroup1) (con' testGroup2))
+          print $ ("FPs",sum $ zipWith (*) (con testGroup1) (con testGroup2))
+
+
+makeTestGroup :: RandomGen g=>Int->g->[Float]
+makeTestGroup s g = take s $ randomRs (0,500) g
+
+con :: [Float]->[FP]
+con = map realToFrac
+
+con' :: [Float]->[Double]
+con' = map realToFrac
diff --git a/FileFormat/SATLIB.hi b/FileFormat/SATLIB.hi
new file mode 100644
Binary files /dev/null and b/FileFormat/SATLIB.hi differ
diff --git a/FileFormat/SATLIB.hs b/FileFormat/SATLIB.hs
--- a/FileFormat/SATLIB.hs
+++ b/FileFormat/SATLIB.hs
@@ -18,8 +18,9 @@
 import CombinatorialOptimisation.SAT
 
 import Data.List
-import qualified Data.Map as M
+-- import qualified Data.Map as M
 import qualified Data.Array as A
+import qualified Data.IntMap as IM
 
 {- | Loading routine that takes the file path and returns a SATProblem. All variables will be set to false in the initial 
 setup, and the truth values of all clauses set appropriately. -}
@@ -32,10 +33,10 @@
        let (varCount,clauseCount) = if  problemLine !! 1 /= "cnf" then error "This is not a CNF file"
                                                                   else (read $ problemLine !! 2,read $ problemLine !! 3) :: (Int,Int)
        let clauseLines =  (map processClause) . (mySplit 0)   .  (map read) .  (concatMap words) . tail $ ls 
-       let clauseMap = foldl f (M.fromList (zip [0 .. varCount -1] $ repeat ([],[]))) (zip [0..] clauseLines)
-       let varLook = ((A.listArray (0,varCount -1) (M.elems clauseMap)) A.!)
+       let clauseMap = foldl f (IM.fromList (zip [0 .. varCount -1] $ repeat ([],[]))) (zip [0..] clauseLines)
+       let varLook = ((A.listArray (0,varCount -1) (IM.elems clauseMap)) A.!)
        let claLook = ((A.listArray (0,clauseCount -1) clauseLines) A.!)
-       return $ satproblem clauseCount varCount varLook claLook (M.fromList $ zip [0 .. varCount -1] $ repeat False)
+       return $ satproblem clauseCount varCount varLook claLook (IM.fromList $ zip [0 .. varCount -1] $ repeat False)
   where
     mySplit target xs = mySplit' [] xs
       where 
@@ -44,8 +45,8 @@
         mySplit' ns (x:xs) | x == target = (reverse ns) : mySplit' [] xs
                            | otherwise = mySplit' (x:ns) xs
     processClause cs = let (as,bs) = partition (>0) cs in (map ((+) (-1)) as,map ((+) (-1)) $ map abs bs)
-    f m (clauseIndex,(ords,negs)) = let addNeg m' x = M.adjust (\(as,bs)->(as,clauseIndex:bs)) x m'
-                                        addOrd m' x = M.adjust (\(as,bs)->(clauseIndex:as,bs)) x m'
+    f m (clauseIndex,(ords,negs)) = let addNeg m' x = IM.adjust (\(as,bs)->(as,clauseIndex:bs)) x m'
+                                        addOrd m' x = IM.adjust (\(as,bs)->(clauseIndex:as,bs)) x m'
                                     in foldl addNeg (foldl addOrd  m  ords) negs 
 
 {- | Save routine for SATProblem, outputs back into SATLIB cnf format. The code @(loadCNFFile f) >>= (saveAsCNF f)@ should 
diff --git a/FileFormat/SATLIB.o b/FileFormat/SATLIB.o
new file mode 100644
Binary files /dev/null and b/FileFormat/SATLIB.o differ
diff --git a/FileFormat/TSPLIB.hi b/FileFormat/TSPLIB.hi
new file mode 100644
Binary files /dev/null and b/FileFormat/TSPLIB.hi differ
diff --git a/FileFormat/TSPLIB.hs b/FileFormat/TSPLIB.hs
--- a/FileFormat/TSPLIB.hs
+++ b/FileFormat/TSPLIB.hs
@@ -29,7 +29,11 @@
 import CombinatorialOptimisation.TSP
 import Data.Maybe
 import qualified Data.Map as M
+import qualified Data.IntMap as IM
 import qualified Data.Array as A
+import qualified Data.Array.Unboxed as U
+import qualified Data.ByteString.Char8 as B
+import qualified Data.ByteString.Lex.Double as BL
 import Data.List
 
 -- going to use a fixed point internal representation, only doing addition afterall
@@ -39,27 +43,27 @@
 
 {- |  Simple 2d Euclidian. -}
 
-euclidianDistance :: (Double,Double)->(Double,Double)->Double
-euclidianDistance (a,b) (c,d) = sqrt ((a-c)*(a-c)+(b-d)*(b-d))
+euclidianDistance :: Double->Double->Double->Double->Double 
+euclidianDistance a b c d = sqrt ((a-c)*(a-c)+(b-d)*(b-d))
 
 {- |  Always rounded up Euclidian. -}
 
-euclidianDistanceCeil :: (Double,Double)->(Double,Double)->Double
-euclidianDistanceCeil a b =  fromIntegral . ceiling     $  euclidianDistance a b
+euclidianDistanceCeil :: Double->Double->Double->Double->Double
+euclidianDistanceCeil a b c d =  fromIntegral . ceiling $ euclidianDistance a b c d
 
 {- |  For only two types of file. Basically a form of rounded Euclidian. -}
 
-pseudoEuclideanDistance :: (Double,Double)->(Double,Double)->Double
-pseudoEuclideanDistance (a,b) (c,d) = let e = sqrt (((a-c)*(a-c)+(b-d)*(b-d))  /10 )
-                                          f = fromIntegral (floor e)
-                                      in if f<e then f+1 else f
+pseudoEuclideanDistance :: Double->Double->Double->Double->Double
+pseudoEuclideanDistance a b c d  = let e = sqrt (((a-c)*(a-c)+(b-d)*(b-d))  /10 )
+                                       f = fromIntegral (floor e)
+                                   in if f<e then f+1 else f
 
 {- |  Distance between two points on the Earth's surface. This is based upon code that 
       another developer wrote, based on the code proposed by TSPLIB itself. I am 
       not sure if this is for an earth shape, or just a sphere. I suspect earth shape. -}
 
-geoDistance :: (Double,Double)->(Double,Double)->Double
-geoDistance (x1,y1) (x2,y2) = encodeFloat (floor dij) 0
+geoDistance :: Double->Double->Double->Double->Double
+geoDistance x1 y1 x2 y2 = encodeFloat (floor dij) 0
   where
     q1 = cos (lon1  - lon2)
     q2 = cos (lat1 - lat2)
@@ -78,7 +82,14 @@
 {- |  A data type for representing bits of the specification section of a file.
       Assumed to be used later as a list of Specifications. -}
 
-data Specification = IGNORE String | USEFUL String String | ENDSPEC String | FAIL String deriving Show
+data Specification = IGNORE B.ByteString 
+                   | USEFUL SpecificationName B.ByteString 
+                   | ENDSPEC B.ByteString 
+                   | FAIL B.ByteString deriving Show
+data SpecificationName = TYPE | DIMENSION | EDGEWEIGHTTYPE | EDGEWEIGHTFORMAT 
+                              | DATAPARTTYPE deriving (Show, Eq)
+nodeCoordConst = B.pack "NODE COORD"
+edgeWeightConst = B.pack "EDGE WEIGHT"
 
 {- |  Test for filtering specification lines, so we only get data we might want to use. Could be
       got rid of as most of the time I do dictionary lookups on the output of the specification
@@ -90,35 +101,36 @@
 {- |  Helper routine for @readSpecification@. Reads a single line (assumes 
       that input is already line by line). -}
 
-readSpecificationLine :: String->Specification
+readSpecificationLine :: B.ByteString->Specification
 readSpecificationLine s 
-  | likeString "NAME" s = IGNORE s
-  | likeString "TYPE" s = USEFUL "Type" (trim s)
-  | likeString "NODE_COORD_SECTION" s = ENDSPEC "NODE COORD"
-  | likeString "EDGE_WEIGHT_SECTION" s = ENDSPEC "EDGE WEIGHT"
-  | likeString "COMMENT" s = IGNORE s
-  | likeString "DIMENSION" s = USEFUL "Dimension" (trim s)
-  | likeString "DISPLAY_DATA_TYPE" s = IGNORE s
-  | likeString "EDGE_WEIGHT_TYPE" s = USEFUL "EdgeWeightType" (trim s)
-  | likeString "EDGE_WEIGHT_FORMAT" s = USEFUL "EdgeWeightFormat" (trim s)
-  | otherwise = FAIL $ "unrecognised field in specification : "++s
+  | likeString (B.pack "NAME") s = IGNORE s 
+  | likeString (B.pack "TYPE") s = USEFUL TYPE (trim s)    
+  | likeString (B.pack "NODE_COORD_SECTION") s = ENDSPEC nodeCoordConst
+  | likeString (B.pack "EDGE_WEIGHT_SECTION") s = ENDSPEC edgeWeightConst
+  | likeString (B.pack "COMMENT") s = IGNORE s
+  | likeString (B.pack "DIMENSION") s = USEFUL DIMENSION (trim s)
+  | likeString (B.pack "DISPLAY_DATA_TYPE") s = IGNORE s
+  | likeString (B.pack "EDGE_WEIGHT_TYPE") s = USEFUL EDGEWEIGHTTYPE (trim s)
+  | likeString (B.pack "EDGE_WEIGHT_FORMAT") s = USEFUL EDGEWEIGHTFORMAT (trim s)
+  | otherwise = FAIL $ B.append (B.pack "unrecognised field in specification : ") s
   where
-    likeString q s = take (length q) s == q
-    trim s = let s' = (dropWhile (==' ')) . (drop 1) . (dropWhile (/=':')) $ s 
-             in reverse . (dropWhile (==' ')) . reverse $ s'
+    likeString q s = B.take (B.length q) s == q
+    trim s = let s' = (B.dropWhile (==' ')) . (B.drop 1) . (B.dropWhile (/=':')) $ s 
+             in B.reverse . (B.dropWhile (==' ')) . B.reverse $ s'
 
 {- |  Helper routine for @loadTSPFile@. Reads the specification section of a file. -}
 
-readSpecification :: [String]->([Specification],[String])
-readSpecification [] = ([FAIL "seem to have run out of data, without ending the specification phase"],[]) 
+readSpecification :: [B.ByteString]->([Specification],[B.ByteString])
+readSpecification [] = ([FAIL $ B.pack "seem to have run out of data, without ending the specification phase"],[]) 
 readSpecification (s:ss) = let p = readSpecificationLine s
                                (rs,es) = readSpecification ss
                            in case p of 
-                             ENDSPEC k  -> ([USEFUL "DATA PART TYPE" k],ss)
-                             IGNORE _   -> (p:rs,es)
-                             FAIL _     -> (p:rs,es)
-                             USEFUL _ _ -> (p:rs,es)
+                              ENDSPEC k  -> ([USEFUL DATAPARTTYPE k],ss)
+                              IGNORE _   -> (p:rs,es)
+                              FAIL _     -> (p:rs,es)
+                              USEFUL _ _ -> (p:rs,es)
  
+ 
 {- |  Loads a TSPLIB style file. The first parameter is the internal 
       storage type from @CombinatorialProblems.TSP@. It allows for 
       full matrix, triangular matrix and full recalculation. If the 
@@ -130,80 +142,91 @@
 
 loadTSPFile :: InternalStorage->FilePath->IO TSPProblem
 loadTSPFile storageType fName 
-  = do rawContents<-readFile fName
-       let (spec,remainder) = readSpecification $ lines rawContents
+  = do rawContents<-B.readFile fName
+       let (spec,remainder) = readSpecification $ B.lines rawContents
                        
        -- mapM_ print spec
        -- print ""
   
        let specList = map (\(USEFUL a b)->(a,b)) . filter isUsefulSpec $ spec
        -- print specList
-       let dataPart = fromJust $ lookup "DATA PART TYPE" specList
-       let numNodes = read $ fromJust $ lookup "Dimension" specList
-       case dataPart of 
-         "NODE COORD"  -> return $ loadFromNodePositions storageType numNodes specList (takeWhile (/="EOF") remainder)
-         "EDGE WEIGHT" -> return $ loadFromMatrix storageType numNodes specList (takeWhile (/="EOF") remainder)
-         _             -> error "Unsupported data section"
+       let dataPart = fromJust $ lookup DATAPARTTYPE specList
+       let numNodes = fst . fromJust . B.readInt . fromJust $ lookup DIMENSION specList
+       if dataPart == nodeCoordConst
+        then return $ loadFromNodePositions storageType numNodes specList (myEOF remainder)
+        else if dataPart == edgeWeightConst
+         then return $ loadFromMatrix storageType numNodes specList (myEOF remainder)
+         else error "Unsupported data section"
+  where 
+    myEOF = takeWhile (/= (B.pack "EOF"))
 
 {- |  Helper routine for @loadTSPFile@. This assumes the input is just points and the 
       distances must be calculated. -}
 
-loadFromNodePositions :: InternalStorage->Int->[(String,String)]->[String]->TSPProblem
+loadFromNodePositions :: InternalStorage->Int->[(SpecificationName,B.ByteString)]->[B.ByteString]->TSPProblem
 loadFromNodePositions storageType numCities spec d 
-  = let d' = map ((\[a,b]->(a,b)) . (map readF) . (drop 1) . words) d
-        posArr = A.listArray (0 , numCities-1) d'
+  = let d' = map ((map readF) . (drop 1) . B.words) d
+        posArrA = U.listArray (0 , numCities-1) (map head d')
+        posArrB = U.listArray (0 , numCities-1) (map last d')
 
         cities = [0 ..(numCities-1)]
         
-        explicit = A.listArray (0,numCities*numCities-1)  [realToFrac $ distFunc (posArr A.! a) (posArr A.! b) | a<-cities,b<-cities]
-        triangular = A.listArray (0,sum [0..numCities])  [realToFrac $ distFunc (posArr A.! a) (posArr A.! b) | a<-cities,b<-[0..a]]
-       
+        explicit = U.listArray (0,numCities*numCities-1)  
+          [unwrappedFP $ distFunc (posArrA A.! a) (posArrB A.! a) (posArrA A.! b) (posArrB A.! b) | a<-cities,b<-cities]
+        triangular = U.listArray (0,sum [0..numCities])  
+          [unwrappedFP $ distFunc (posArrA A.! a) (posArrB A.! a) (posArrA A.! b) (posArrB A.! b) | a<-cities,b<-[0..a]]
+      
         p = case storageType of
-              ExplicitMatrix -> \x y->explicit A.! (x * numCities + y)
-              TriangularMatrix -> (\x y->let x' = min x y; y' = max x y in triangular A.! (div (y'*y'+y') 2 + x'))
-              Recomputation -> \a b->realToFrac $ distFunc (posArr A.! a) (posArr A.! b)
-    in TSPProblem 0 M.empty p numCities M.empty M.empty
+              ExplicitMatrix -> \x y->FP $ explicit A.! (x * numCities + y)
+              TriangularMatrix -> (\x y->let x' = min x y; y' = max x y in FP $ triangular A.! (div (y'*y'+y') 2 + x'))
+              Recomputation -> \a b->realToFrac $ distFunc (posArrA A.! a) (posArrB A.! a) (posArrA A.! b) (posArrB A.! b)
+    in TSPProblem 0 p numCities IM.empty IM.empty
   where
-    readF = read :: (String->Double)
-    distanceFunctionSpec = fromJust $ lookup "EdgeWeightType" spec
-    distFunc = case distanceFunctionSpec of
-       "GEO" -> geoDistance
-       "EUC_2D" -> euclidianDistance
-       "ATT"    -> pseudoEuclideanDistance
-       "CEIL_2D"-> euclidianDistanceCeil
-       _        -> error $ "unsupported distance function : "++distanceFunctionSpec
+    readF :: B.ByteString->Double
+    readF = fst . fromJust . BL.readDouble -- read . B.unpack 
+    distanceFunctionSpec = fromJust $ lookup EDGEWEIGHTTYPE spec
+    distFunc = if distanceFunctionSpec == (B.pack "GEO") 
+                then geoDistance 
+                else if distanceFunctionSpec == (B.pack "EUC_2D")
+                 then euclidianDistance
+                 else if distanceFunctionSpec == (B.pack "ATT")
+                  then pseudoEuclideanDistance
+                  else if distanceFunctionSpec == (B.pack "CEIL_2D")
+                   then euclidianDistanceCeil
+                   else error $ "unsupported distance function : "++(show distanceFunctionSpec)                                  
  
 {- |  Helper routine for @loadTSPFile@. This assumes the input data is a matrix of some form, 
       and loads it. -}
 
-loadFromMatrix  :: InternalStorage->Int->[(String,String)]->[String]->TSPProblem
+loadFromMatrix  :: InternalStorage->Int->[(SpecificationName,B.ByteString)]->[B.ByteString]->TSPProblem
 loadFromMatrix Recomputation _ _ _ = error "Cannot load matrix and store in recomputation form"
 loadFromMatrix storageType numCities spec d
-  | distanceFunctionSpec /= "EXPLICIT" = error "loading from non explicit matrix? (does not make sense)"
-  | storageType == TriangularMatrix = TSPProblem 0 M.empty (\x y->let x' = min x y; y' = max x y in triangularArray A.! (div (y'*y'+y') 2 + x')) numCities M.empty M.empty
-  | storageType == ExplicitMatrix = TSPProblem 0 M.empty (\x y->explicitArray A.! (y * numCities + x)) numCities M.empty M.empty
+  | distanceFunctionSpec /= B.pack "EXPLICIT" = error "loading from non explicit matrix? (does not make sense)"
+  | storageType == TriangularMatrix = TSPProblem 0 (\x y->let x' = min x y; y' = max x y in FP $ triangularArray A.! (div (y'*y'+y') 2 + x')) numCities IM.empty IM.empty
+  | storageType == ExplicitMatrix = TSPProblem 0 (\x y->FP $ explicitArray A.! (y * numCities + x)) numCities IM.empty IM.empty
   where
-    readF = realToFrac . (read :: (String->Double))
-    distanceFunctionSpec = fromJust $ lookup "EdgeWeightType" spec
-    inputNumberSequence = concatMap ((map readF) . words) d -- not entirely trusting line breaks in file format, so turning into list of numbers, and putting in coords later
+    readF = unwrappedFP . (read :: String->Double)  . B.unpack 
+    distanceFunctionSpec = fromJust $ lookup EDGEWEIGHTTYPE spec
+    inputNumberSequence = concatMap ((map readF) . B.words) d -- not entirely trusting line breaks in file format, so turning into list of numbers, and putting in coords later
     cities = [0 ..(numCities-1)]
 
     blankMatrix = foldl' (\m d->M.insert (d,d) 0 m) M.empty cities
     fillPair m ((a,b),c) = M.insert (b,a) c $ (M.insert (a,b) c m)
     makeFromTri = foldl' fillPair blankMatrix
 
-    loadedMap = case fromJust $ lookup "EdgeWeightFormat" spec of
-           "FULL_MATRIX" -> foldl' (\m (d,c)->M.insert d c m) M.empty (zip [(a,b) | a<-cities,b<-cities] inputNumberSequence)
-           "UPPER_ROW"      -> makeFromTri $ zip [(a,b) | a<-cities,b<-[a..(numCities - 1)],a/=b] inputNumberSequence
-           "LOWER_ROW"      -> makeFromTri $ zip [(a,b) | a<-cities,b<-[0..a],a/=b] inputNumberSequence
-           "UPPER_DIAG_ROW" -> makeFromTri $ zip [(a,b) | a<-cities,b<-[a..(numCities - 1)]] inputNumberSequence
-           "LOWER_DIAG_ROW" -> makeFromTri $ zip [(a,b) | a<-cities,b<-[0..a]] inputNumberSequence
+    loadedMap = makeWeightsInternal (fromJust $ lookup EDGEWEIGHTFORMAT spec)
+    makeWeightsInternal inp 
+     | B.pack "FULL_MATRIX" == inp = foldl' (\m (d,c)->M.insert d c m) M.empty (zip [(a,b) | a<-cities,b<-cities]   inputNumberSequence)
+     | B.pack "UPPER_ROW" == inp = makeFromTri $ zip [(a,b) | a<-cities,b<-[a..(numCities - 1)],a/=b] inputNumberSequence
+     | B.pack "LOWER_ROW" == inp = makeFromTri $ zip [(a,b) | a<-cities,b<-[0..a],a/=b] inputNumberSequence
+     | B.pack "UPPER_DIAG_ROW" == inp = makeFromTri $ zip [(a,b) | a<-cities,b<-[a..(numCities - 1)]] inputNumberSequence
+     | B.pack "LOWER_DIAG_ROW" == inp = makeFromTri $ zip [(a,b) | a<-cities,b<-[0..a]] inputNumberSequence
 
-           "UPPER_COL"      -> makeFromTri $ zip [(b,a) | a<-cities,b<-[a..(numCities - 1)],a/=b] inputNumberSequence
-           "LOWER_COL"      -> makeFromTri $ zip [(b,a) | a<-cities,b<-[0..a],a/=b] inputNumberSequence
-           "UPPER_DIAG_COL" -> makeFromTri $ zip [(b,a) | a<-cities,b<-[a..(numCities - 1)]] inputNumberSequence
-           "LOWER_DIAG_COL" -> makeFromTri $ zip [(b,a) | a<-cities,b<-[0..a]] inputNumberSequence
+     | B.pack "UPPER_COL" == inp = makeFromTri $ zip [(b,a) | a<-cities,b<-[a..(numCities - 1)],a/=b] inputNumberSequence
+     | B.pack "LOWER_COL" == inp = makeFromTri $ zip [(b,a) | a<-cities,b<-[0..a],a/=b] inputNumberSequence
+     | B.pack "UPPER_DIAG_COL" == inp = makeFromTri $ zip [(b,a) | a<-cities,b<-[a..(numCities - 1)]] inputNumberSequence
+     | B.pack "LOWER_DIAG_COL" == inp = makeFromTri $ zip [(b,a) | a<-cities,b<-[0..a]] inputNumberSequence
  
-    explicitArray = A.listArray (0,numCities*numCities-1) [loadedMap M.! (a,b) | a<-cities,b<-cities]
-    triangularArray = A.listArray (0,sum [0..numCities])  [loadedMap M.! (a,b) | a<-cities,b<-[0..a]]
+    explicitArray = U.listArray (0,numCities*numCities-1) [loadedMap M.! (a,b) | a<-cities,b<-cities]
+    triangularArray = U.listArray (0,sum [0..numCities])  [loadedMap M.! (a,b) | a<-cities,b<-[0..a]]
 
diff --git a/FileFormat/TSPLIB.o b/FileFormat/TSPLIB.o
new file mode 100644
Binary files /dev/null and b/FileFormat/TSPLIB.o differ
diff --git a/FormatDescriptions/tim_file_format.html b/FormatDescriptions/tim_file_format.html
new file mode 100644
--- /dev/null
+++ b/FormatDescriptions/tim_file_format.html
@@ -0,0 +1,406 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
+<html xmlns="http://www.w3.org/TR/REC-html40" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:v="urn:schemas-microsoft-com:vml"><head><!-- saved from url=(0022)http://internet.e-mail -->
+
+
+<!--Converted with LaTeX2HTML 2002 (1.62)
+original version by:  Nikos Drakos, CBLU, University of Leeds
+* revised and updated by:  Marcus Hennecke, Ross Moore, Herb Swan
+* with significant contributions from:
+  Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
+
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
+<meta name="ProgId" content="Word.Document">
+<meta name="Generator" content="Microsoft Word 9">
+<meta name="Originator" content="Microsoft Word 9">
+<link rel="File-List" href="http://www.idsia.ch/Files/ttcomp2002/IC_Problem/node7_files/filelist.xml">
+<link rel="Edit-Time-Data" href="http://www.idsia.ch/Files/ttcomp2002/IC_Problem/node7_files/editdata.mso">
+<!--[if !mso]>
+<style>
+v\:* {behavior:url(#default#VML);}
+o\:* {behavior:url(#default#VML);}
+w\:* {behavior:url(#default#VML);}
+.shape {behavior:url(#default#VML);}
+</style>
+<![endif]-->
+<title>Input Format</title>
+<!--[if gte mso 9]><xml>
+ <o:DocumentProperties>
+  <o:Author>oliviar</o:Author>
+  <o:LastAuthor>oliviar</o:LastAuthor>
+  <o:Revision>7</o:Revision>
+  <o:TotalTime>4</o:TotalTime>
+  <o:Created>2002-09-27T15:42:00Z</o:Created>
+  <o:LastSaved>2002-09-30T09:41:00Z</o:LastSaved>
+  <o:Pages>3</o:Pages>
+  <o:Words>601</o:Words>
+  <o:Characters>3431</o:Characters>
+  <o:Company>Napier University</o:Company>
+  <o:Lines>28</o:Lines>
+  <o:Paragraphs>6</o:Paragraphs>
+  <o:CharactersWithSpaces>4213</o:CharactersWithSpaces>
+  <o:Version>9.2720</o:Version>
+ </o:DocumentProperties>
+</xml><![endif]-->
+<link rel="Stylesheet" type="text/css" media="all" href="node7_files/IC_Problem.css">
+<style>
+<!--
+ /* Style Definitions */
+p.MsoNormal, li.MsoNormal, div.MsoNormal
+	{mso-style-parent:"";
+	margin:0cm;
+	margin-bottom:.0001pt;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+a:link, span.MsoHyperlink
+	{color:blue;
+	text-decoration:underline;
+	text-underline:single;}
+a:visited, span.MsoHyperlinkFollowed
+	{color:blue;
+	text-decoration:underline;
+	text-underline:single;}
+p
+	{margin-right:0cm;
+	mso-margin-top-alt:auto;
+	mso-margin-bottom-alt:auto;
+	margin-left:0cm;
+	mso-pagination:widow-orphan;
+	font-size:12.0pt;
+	font-family:"Times New Roman";
+	mso-fareast-font-family:"Times New Roman";}
+@page Section1
+	{size:595.3pt 841.9pt;
+	margin:72.0pt 90.0pt 72.0pt 90.0pt;
+	mso-header-margin:35.4pt;
+	mso-footer-margin:35.4pt;
+	mso-paper-source:0;}
+div.Section1
+	{page:Section1;}
+ /* List Definitions */
+@list l0
+	{mso-list-id:475799076;
+	mso-list-type:hybrid;
+	mso-list-template-ids:-133932466 -474050670 1935802886 -300282666 -864497894 -1334814174 1264740338 1257945420 1354236014 -1067549128;}
+@list l0:level1
+	{mso-level-number-format:bullet;
+	mso-level-text:\F0B7;
+	mso-level-tab-stop:36.0pt;
+	mso-level-number-position:left;
+	text-indent:-18.0pt;
+	mso-ansi-font-size:10.0pt;
+	font-family:Symbol;}
+ol
+	{margin-bottom:0cm;}
+ul
+	{margin-bottom:0cm;}
+-->
+</style>
+<meta name="description" content="Input Format">
+<meta name="keywords" content="IC_Problem">
+<meta name="resource-type" content="document">
+<meta name="distribution" content="global">
+<meta http-equiv="Content-Style-Type" content="text/css">
+<link rel="next" href="http://www.idsia.ch/Files/ttcomp2002/IC_Problem/node8.html">
+<link rel="previous" href="http://www.idsia.ch/Files/ttcomp2002/IC_Problem/node6.html">
+<link rel="up" href="http://www.idsia.ch/Files/ttcomp2002/IC_Problem/..%5Cindex.html">
+<link rel="next" href="http://www.idsia.ch/Files/ttcomp2002/IC_Problem/node8.html">
+</head><body style="" lang="EN-GB" link="blue" vlink="blue">
+<div class="Section1"> 
+  <h1><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><font face="Arial, Helvetica, sans-serif">Input 
+    Format</font></span> </span></span></span></span></span></span></h1>
+  <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">The problem 
+    instance files have the following format (all numbers are integers, all intra-line 
+    separators are spaces): </span></span></span></span></span></span></font></p>
+  <ul type="disc">
+    <li class="MsoNormal" style=""> 
+      <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><b>First line:</b> <br>
+        Number of events, number of rooms, number of features, number of students. 
+        </span></span></span></span></span></span></font></p>
+    </li>
+    <li class="MsoNormal" style=""> 
+      <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><b>One line for each room:</b> 
+        <br>
+        Roomsize. </span></span></span></span></span></span></font></p>
+    </li>
+    <li class="MsoNormal" style=""> 
+      <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><b>One line for each student/event:</b> 
+        <br>
+        A zero or one. Zero means that the student does NOT attend the event, 
+        one means that he DOES attend the event. <br>
+        In the order of these the event changes more quickly. <br>
+        For example, if there were <img id="_x0000_i1028" src="node7_files/img19.png" alt="$3$" border="0" height="13" width="12" align="BOTTOM">students and <img id="_x0000_i1029" src="node7_files/img20.png" alt="$4$" border="0" height="13" width="12" align="BOTTOM">events then the following: </span></span></span></span></span></span></font></p>
+    </li>
+  </ul>
+  <table style="margin-left: 36pt;" border="0" cellpadding="0">
+    <tbody><tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+  </tbody></table>
+  <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
+    </span>would give this <i>attends</i> matrix: </span></span></span></span></span></span></font></p>
+  <table style="margin-left: 36pt;" border="0" cellpadding="0">
+    <tbody><tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">event</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">student</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+  </tbody></table>
+  <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style="">&nbsp;&nbsp;&nbsp;</span>Meaning: </span></span></span></span></span></span></font></p>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the first student attends the 
+    second event <br>
+    <span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the 
+    second student attends the first and second events <br>
+    <span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the 
+    third student attends the third event </span></span></span></span></span></span></font></p>
+</div>
+<ul>
+  <li> 
+    <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><b>One line for each room/feature:</b> <br>
+      A zero if the room does NOT satisfy the feature, or a one if the room DOES 
+      satisfy the feature. <br>
+      In the order of these the feature changes more quickly. <br>
+      For example, if there were <img id="_x0000_i1030" src="node7_files/img19.png" alt="$3$" border="0" height="13" width="12" align="BOTTOM">rooms and <img id="_x0000_i1031" src="node7_files/img20.png" alt="$4$" border="0" height="13" width="12" align="BOTTOM">features then 
+      the following: </span></span></span></span></span></span></font></p>
+  </li>
+</ul>
+<div class="Section1"> 
+  <table style="margin-left: 36pt;" border="0" cellpadding="0">
+    <tbody><tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+  </tbody></table>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>would give this <i>roomfeatures</i> 
+    matrix: </span></span></span></span></span></span></font></p>
+  <table style="margin-left: 36pt;" border="0" cellpadding="0">
+    <tbody><tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">feature</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">room</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+  </tbody></table>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Meaning: </span></span></span></span></span></span></font></p>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the first room satisfies the 
+    second feature <br>
+    <span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the 
+    second room satisfies the first and second features <br>
+    <span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the 
+    third room satisfies the third feature </span></span></span></span></span></span></font></p>
+</div>
+<ul>
+  <li> 
+    <p><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><b>One line for each event/feature:</b> <br>
+      A zero if the event does NOT require the feature, or a one if it DOES. <br>
+      In the order of these the feature changes more quickly. <br>
+      For example, if there were <img id="_x0000_i1032" src="node7_files/img19.png" alt="$3$" border="0" height="13" width="12" align="BOTTOM">events and <img id="_x0000_i1033" src="node7_files/img20.png" alt="$4$" border="0" height="13" width="12" align="BOTTOM">features then 
+      the following: </span></span></span></span></span></span></font></p>
+  </li>
+</ul>
+<div class="Section1"> 
+  <table style="margin-left: 36pt;" border="0" cellpadding="0">
+    <tbody><tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+  </tbody></table>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>would give this <i>eventfeatures</i> 
+    matrix: </span></span></span></span></span></span></font></p>
+  <table style="margin-left: 36pt;" border="0" cellpadding="0">
+    <tbody><tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">feature</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">event</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+    <tr> 
+      <td style="padding: 2.25pt;"> <p class="MsoNormal"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">1</span></span></span></span></span></span></font></p></td>
+      <td style="padding: 2.25pt;"> <p class="MsoNormal" style="text-align: center;" align="center"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">0</span></span></span></span></span></span></font></p></td>
+    </tr>
+  </tbody></table>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>Meaning: </span></span></span></span></span></span></font></p>
+  <p style="margin-left: 18pt;"><font face="Arial, Helvetica, sans-serif"><span style=""><span style=""><span style=""><span style=""><span style=""><span style=""><span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the first event requires the 
+    second feature <br>
+    <span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the 
+    second event requires the first and second features <br>
+    <span style="">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>the 
+    third event requires the third feature </span></span></span></span></span></span></font></p>
+</div>
+
+</body></html>
diff --git a/Test.csv b/Test.csv
new file mode 100644
--- /dev/null
+++ b/Test.csv
@@ -0,0 +1,637 @@
+Number Of Events,400
+Number Of Rooms,10
+Number Of Features,10
+Number Of People,200
+Slots Per Day,9
+Days,5
+
+Room Sizes
+Room 0,10
+Room 1,10
+Room 2,10
+Room 3,10
+Room 4,11
+Room 5,11
+Room 6,11
+Room 7,10
+Room 8,11
+Room 9,10
+
+Student Event Table
+,E0,E1,E2,E3,E4,E5,E6,E7,E8,E9,E10,E11,E12,E13,E14,E15,E16,E17,E18,E19,E20,E21,E22,E23,E24,E25,E26,E27,E28,E29,E30,E31,E32,E33,E34,E35,E36,E37,E38,E39,E40,E41,E42,E43,E44,E45,E46,E47,E48,E49,E50,E51,E52,E53,E54,E55,E56,E57,E58,E59,E60,E61,E62,E63,E64,E65,E66,E67,E68,E69,E70,E71,E72,E73,E74,E75,E76,E77,E78,E79,E80,E81,E82,E83,E84,E85,E86,E87,E88,E89,E90,E91,E92,E93,E94,E95,E96,E97,E98,E99,E100,E101,E102,E103,E104,E105,E106,E107,E108,E109,E110,E111,E112,E113,E114,E115,E116,E117,E118,E119,E120,E121,E122,E123,E124,E125,E126,E127,E128,E129,E130,E131,E132,E133,E134,E135,E136,E137,E138,E139,E140,E141,E142,E143,E144,E145,E146,E147,E148,E149,E150,E151,E152,E153,E154,E155,E156,E157,E158,E159,E160,E161,E162,E163,E164,E165,E166,E167,E168,E169,E170,E171,E172,E173,E174,E175,E176,E177,E178,E179,E180,E181,E182,E183,E184,E185,E186,E187,E188,E189,E190,E191,E192,E193,E194,E195,E196,E197,E198,E199,E200,E201,E202,E203,E204,E205,E206,E207,E208,E209,E210,E211,E212,E213,E214,E215,E216,E217,E218,E219,E220,E221,E222,E223,E224,E225,E226,E227,E228,E229,E230,E231,E232,E233,E234,E235,E236,E237,E238,E239,E240,E241,E242,E243,E244,E245,E246,E247,E248,E249,E250,E251,E252,E253,E254,E255,E256,E257,E258,E259,E260,E261,E262,E263,E264,E265,E266,E267,E268,E269,E270,E271,E272,E273,E274,E275,E276,E277,E278,E279,E280,E281,E282,E283,E284,E285,E286,E287,E288,E289,E290,E291,E292,E293,E294,E295,E296,E297,E298,E299,E300,E301,E302,E303,E304,E305,E306,E307,E308,E309,E310,E311,E312,E313,E314,E315,E316,E317,E318,E319,E320,E321,E322,E323,E324,E325,E326,E327,E328,E329,E330,E331,E332,E333,E334,E335,E336,E337,E338,E339,E340,E341,E342,E343,E344,E345,E346,E347,E348,E349,E350,E351,E352,E353,E354,E355,E356,E357,E358,E359,E360,E361,E362,E363,E364,E365,E366,E367,E368,E369,E370,E371,E372,E373,E374,E375,E376,E377,E378,E379,E380,E381,E382,E383,E384,E385,E386,E387,E388,E389,E390,E391,E392,E393,E394,E395,E396,E397,E398,E399
+S0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S4,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S5,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S6,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S7,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S8,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S9,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S10,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S11,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S12,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S13,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S14,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S15,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S16,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+S17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+S18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+S19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+S20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0
+S21,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S22,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
+S23,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0
+S24,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
+S25,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S26,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0
+S27,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S28,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
+S29,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+S30,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
+S31,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S32,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0
+S33,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S34,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S35,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S36,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S37,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S38,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S39,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S40,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S41,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0
+S42,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S43,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S44,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S45,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S46,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S47,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0
+S48,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S49,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0
+S50,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0
+S51,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S52,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0
+S53,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
+S54,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0
+S55,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0
+S56,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0
+S57,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0
+S58,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0
+S59,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0
+S60,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0
+S61,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0
+S62,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0
+S63,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+S64,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+S65,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+S66,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+S67,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0
+S68,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0
+S69,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S70,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+S71,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S72,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0
+S73,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+S74,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+S75,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S76,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+S77,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0
+S78,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+S79,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S80,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S81,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+S82,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0
+S83,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,1,0,0,0,0
+S84,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,1,1
+S85,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
+S86,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
+S87,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0
+S88,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S89,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S90,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0
+S91,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S92,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S93,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1
+S94,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+S95,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+S96,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1
+S97,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+S98,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+S99,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
+S100,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S101,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S102,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0
+S103,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S104,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S105,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S106,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+S107,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S108,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1
+S109,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S110,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S111,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S112,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S113,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0
+S114,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S116,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S117,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S118,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S119,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S120,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S121,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0
+S122,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S123,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S124,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S125,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S126,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S127,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S128,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S129,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S130,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S131,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S132,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S133,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S134,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S135,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S136,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S137,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S138,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S139,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S140,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S141,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S142,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S143,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S144,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S145,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S146,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S147,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S148,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S149,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S150,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S151,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S152,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S153,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S154,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S155,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S156,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S157,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S158,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S159,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S160,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S161,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S162,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S163,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S164,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S165,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S166,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S167,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S168,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S169,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S170,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S171,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S172,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S173,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S174,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S175,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0
+S176,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S177,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S178,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S179,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0
+S180,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S181,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S182,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S183,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S184,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S185,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0
+S186,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0
+S187,0,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S188,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S189,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S190,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S191,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S192,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S193,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S194,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S195,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S196,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S197,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S198,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+S199,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
+
+Room Feature Table
+,F0,F1,F2,F3,F4,F5,F6,F7,F8,F9
+R0,0,1,1,0,0,0,1,1,1,0
+R1,1,1,0,1,1,1,1,0,1,0
+R2,1,0,0,1,1,0,1,1,1,0
+R3,1,0,1,0,1,1,0,0,0,1
+R4,1,1,1,1,1,1,1,0,1,1
+R5,0,0,0,1,1,0,1,1,0,0
+R6,0,1,1,0,1,0,0,0,0,1
+R7,0,1,0,0,1,1,0,0,0,1
+R8,0,1,1,1,1,1,0,0,0,0
+R9,1,1,1,1,0,0,0,1,0,1
+
+Event Feature Table
+,F0,F1,F2,F3,F4,F5,F6,F7,F8,F9
+E0,0,0,0,1,1,0,1,1,1,0
+E1,0,1,1,0,0,0,1,0,1,0
+E2,0,1,1,1,1,1,0,0,0,0
+E3,1,0,1,0,1,1,0,0,0,1
+E4,0,1,1,0,0,0,0,0,0,1
+E5,0,0,1,0,1,1,0,0,0,1
+E6,1,0,0,1,1,0,1,1,1,0
+E7,0,1,1,1,1,1,0,0,0,0
+E8,0,0,0,1,1,0,1,1,0,0
+E9,1,0,1,1,0,1,1,0,1,1
+E10,0,0,0,1,0,0,1,1,0,0
+E11,1,0,0,0,1,1,0,0,0,0
+E12,1,1,1,1,1,1,1,0,1,1
+E13,0,0,0,1,1,0,1,1,0,0
+E14,1,1,0,1,1,1,1,0,0,0
+E15,0,0,1,0,0,0,0,0,0,1
+E16,0,0,0,1,0,0,0,0,0,0
+E17,0,1,1,0,0,0,1,1,0,0
+E18,0,0,1,0,1,0,0,0,0,1
+E19,1,0,0,1,1,0,1,1,1,0
+E20,1,0,1,0,1,1,0,0,0,1
+E21,1,0,0,0,1,0,1,1,0,0
+E22,0,0,0,1,1,0,1,1,0,0
+E23,0,1,1,0,1,0,0,0,0,1
+E24,0,1,0,0,1,0,0,0,0,1
+E25,0,0,0,1,1,0,1,0,0,0
+E26,0,0,0,1,1,0,1,1,0,0
+E27,0,0,0,0,1,0,1,1,0,0
+E28,0,1,1,1,1,1,1,0,1,0
+E29,1,1,1,1,0,1,1,0,1,1
+E30,1,0,0,0,1,1,0,0,0,1
+E31,1,0,0,0,1,1,0,0,0,1
+E32,1,0,0,0,1,0,0,1,1,0
+E33,0,0,0,0,1,0,1,1,0,0
+E34,0,0,0,1,1,0,1,1,0,0
+E35,1,0,1,0,1,1,0,0,0,1
+E36,0,1,1,0,0,0,1,1,1,0
+E37,0,0,1,0,0,0,1,1,1,0
+E38,1,1,0,1,1,1,1,0,1,1
+E39,0,0,0,1,1,0,1,1,0,0
+E40,1,1,1,1,0,0,0,0,0,1
+E41,0,0,0,1,1,0,1,1,1,0
+E42,0,1,0,0,0,0,1,1,0,0
+E43,1,0,1,0,1,1,0,0,0,0
+E44,0,0,0,0,1,0,1,1,1,0
+E45,0,1,1,0,0,0,1,0,0,0
+E46,0,0,1,0,1,0,0,0,0,1
+E47,0,1,0,0,0,0,0,1,1,0
+E48,0,0,0,1,0,0,1,1,0,0
+E49,1,1,1,1,1,1,0,0,1,1
+E50,0,1,0,0,1,1,0,0,0,0
+E51,0,1,0,0,1,1,1,0,1,0
+E52,1,1,1,0,0,0,0,1,0,0
+E53,1,1,1,1,0,0,0,1,0,1
+E54,1,0,0,1,1,0,1,1,1,0
+E55,1,1,0,0,1,1,0,0,1,0
+E56,0,0,1,0,0,0,1,1,0,0
+E57,0,1,1,0,1,0,0,0,0,1
+E58,1,1,1,1,0,0,0,0,0,1
+E59,0,1,1,0,0,0,1,0,1,0
+E60,1,0,0,1,0,0,1,1,0,0
+E61,0,1,1,0,0,1,0,0,0,0
+E62,1,0,0,1,0,0,1,0,1,0
+E63,0,0,0,0,1,1,0,0,0,0
+E64,0,1,1,0,1,1,1,0,1,1
+E65,0,0,0,1,1,0,1,1,0,0
+E66,1,1,1,0,0,0,0,1,0,1
+E67,0,1,0,0,1,1,0,0,0,1
+E68,0,1,1,0,1,0,0,0,0,1
+E69,1,1,1,0,0,1,1,0,1,1
+E70,1,0,0,0,1,1,0,0,0,1
+E71,0,1,0,0,1,0,0,0,0,1
+E72,1,0,1,1,1,1,0,0,1,0
+E73,0,1,0,1,1,0,1,0,1,0
+E74,0,1,1,0,1,0,0,0,0,1
+E75,0,1,1,0,1,1,1,0,0,0
+E76,1,1,0,1,1,0,1,0,1,0
+E77,0,0,0,1,1,0,1,1,0,0
+E78,0,1,0,1,0,0,1,0,1,0
+E79,0,0,0,0,0,0,1,1,0,0
+E80,0,0,1,0,1,0,0,0,0,1
+E81,1,0,0,1,1,0,1,1,1,0
+E82,0,1,1,0,1,0,0,0,0,1
+E83,1,0,1,0,1,1,0,0,0,1
+E84,0,1,0,0,0,0,0,1,1,0
+E85,0,1,1,0,0,0,1,0,1,0
+E86,0,1,0,0,1,1,0,0,0,0
+E87,1,1,1,1,1,1,1,0,0,1
+E88,0,1,1,0,0,0,1,1,1,0
+E89,1,0,1,0,1,1,0,0,0,1
+E90,0,1,1,0,1,0,0,0,0,0
+E91,0,1,0,0,1,1,0,0,0,0
+E92,1,0,1,1,1,0,1,0,1,1
+E93,1,1,0,1,1,1,1,0,1,0
+E94,0,1,0,1,1,1,0,0,0,0
+E95,0,1,0,0,1,0,0,0,0,1
+E96,1,0,0,1,1,0,1,1,1,0
+E97,0,1,1,1,0,0,0,1,0,1
+E98,0,0,0,1,1,0,1,0,0,0
+E99,0,1,0,0,1,1,0,0,0,1
+E100,0,1,1,1,1,1,0,0,0,0
+E101,0,0,0,0,1,0,0,0,0,1
+E102,0,1,0,0,1,0,0,0,0,1
+E103,0,0,1,0,1,0,0,0,0,1
+E104,1,1,1,0,1,1,1,0,1,1
+E105,0,1,1,1,0,1,0,0,1,1
+E106,0,0,0,1,1,0,1,1,0,0
+E107,1,0,1,0,1,1,0,0,0,1
+E108,0,1,1,1,1,0,0,0,0,0
+E109,1,0,0,0,1,1,0,0,0,1
+E110,0,1,0,0,1,1,0,0,0,1
+E111,0,0,0,1,1,0,1,1,0,0
+E112,1,1,0,1,0,0,0,1,0,1
+E113,1,0,1,0,1,1,0,0,0,1
+E114,1,1,0,1,1,1,1,0,1,0
+E115,0,0,1,1,1,1,1,0,1,0
+E116,1,0,0,1,1,0,1,0,0,0
+E117,0,1,0,0,1,1,0,0,0,1
+E118,0,1,0,0,0,0,0,0,0,1
+E119,0,0,0,1,1,0,1,1,1,0
+E120,0,1,0,0,1,1,0,0,0,1
+E121,1,1,0,0,1,0,1,0,1,1
+E122,1,0,0,1,1,0,0,1,1,0
+E123,1,0,1,0,1,1,0,0,0,1
+E124,0,1,1,0,1,1,0,0,0,0
+E125,0,1,0,0,1,1,0,0,0,1
+E126,1,0,0,1,0,0,1,0,1,0
+E127,0,1,1,0,1,0,0,0,0,1
+E128,0,0,1,0,0,1,0,0,0,0
+E129,1,1,0,1,0,0,1,0,0,0
+E130,0,0,0,1,0,0,1,0,0,0
+E131,0,1,0,0,0,0,1,1,1,0
+E132,1,1,0,1,1,1,1,0,0,0
+E133,1,1,1,1,1,1,1,0,1,1
+E134,0,1,1,1,1,1,0,0,0,0
+E135,1,1,1,1,1,1,1,0,1,1
+E136,1,1,0,1,1,0,1,0,1,0
+E137,1,1,1,1,1,1,1,0,1,1
+E138,0,1,1,0,0,0,1,1,1,0
+E139,0,1,0,0,1,0,0,0,0,1
+E140,1,1,0,1,1,1,1,0,0,0
+E141,0,0,1,0,0,0,0,0,0,1
+E142,0,1,1,1,1,1,0,0,0,1
+E143,1,1,1,1,0,0,0,0,1,1
+E144,0,1,0,1,1,1,0,0,0,0
+E145,1,0,1,0,1,1,0,0,0,1
+E146,0,1,0,0,1,1,0,0,0,1
+E147,1,0,0,1,1,0,1,1,1,0
+E148,1,0,1,0,1,1,0,0,0,1
+E149,0,1,0,1,1,1,0,0,0,1
+E150,1,0,0,0,1,0,1,1,1,0
+E151,0,1,1,1,1,1,0,0,0,0
+E152,0,1,1,0,1,0,0,0,0,1
+E153,0,1,1,1,1,1,0,0,0,0
+E154,0,0,1,0,1,0,0,0,0,0
+E155,1,1,0,1,1,1,1,0,1,0
+E156,0,0,1,0,1,0,0,0,0,1
+E157,0,1,0,0,0,0,0,1,1,0
+E158,1,0,0,1,1,0,1,1,1,0
+E159,0,1,1,0,1,0,0,0,0,1
+E160,0,1,1,0,1,0,0,0,0,1
+E161,1,0,0,0,1,0,1,0,1,0
+E162,1,0,0,1,1,0,1,1,1,0
+E163,1,1,1,1,0,0,0,1,0,1
+E164,0,1,1,1,1,1,1,0,1,1
+E165,1,1,1,1,0,1,0,0,0,1
+E166,1,1,1,1,0,0,0,0,0,1
+E167,1,0,1,0,1,1,0,0,0,0
+E168,0,1,0,1,1,1,1,0,1,0
+E169,0,0,1,1,1,1,0,0,1,0
+E170,0,0,0,1,0,0,1,1,0,0
+E171,0,0,1,0,1,0,0,0,0,1
+E172,1,1,1,1,0,0,0,1,0,0
+E173,0,0,0,1,1,1,1,0,1,0
+E174,1,0,0,1,0,0,1,1,1,0
+E175,0,0,0,0,1,1,0,0,0,1
+E176,0,0,1,1,1,1,0,0,0,0
+E177,0,0,0,0,1,0,1,1,1,0
+E178,1,1,1,1,0,0,0,1,0,1
+E179,0,1,0,0,1,0,0,0,0,1
+E180,0,1,1,0,0,0,1,1,0,0
+E181,0,1,1,0,1,0,0,0,0,1
+E182,1,0,0,0,1,1,0,0,0,1
+E183,1,0,0,1,1,1,0,0,1,0
+E184,0,1,0,0,1,1,0,0,0,0
+E185,0,1,1,1,1,0,0,0,0,0
+E186,0,0,0,0,0,0,0,0,0,0
+E187,1,1,1,0,0,0,0,1,0,1
+E188,0,1,1,1,1,1,0,0,0,1
+E189,0,0,0,1,1,0,0,1,0,0
+E190,0,1,0,0,0,0,1,1,1,0
+E191,1,0,1,0,1,1,0,0,0,1
+E192,1,1,0,1,1,1,1,0,0,1
+E193,0,0,0,0,1,0,0,0,0,1
+E194,0,0,1,0,1,0,0,0,0,1
+E195,0,1,0,0,0,1,0,0,0,1
+E196,0,1,1,1,1,0,0,0,0,0
+E197,1,1,0,1,1,1,1,0,1,0
+E198,0,1,0,1,1,1,1,0,0,0
+E199,0,0,0,1,1,0,1,1,0,0
+E200,0,1,1,0,0,0,1,1,1,0
+E201,0,0,0,0,0,0,0,1,0,0
+E202,1,1,1,1,1,0,1,0,1,1
+E203,0,1,0,0,1,1,0,0,0,0
+E204,0,1,0,1,0,1,0,0,0,0
+E205,0,0,1,0,1,1,0,0,0,1
+E206,0,1,1,0,1,0,0,0,0,1
+E207,0,1,0,0,1,1,0,0,0,1
+E208,0,0,1,1,0,0,0,1,0,0
+E209,1,0,1,0,1,1,0,0,0,0
+E210,0,1,0,0,1,1,0,0,0,1
+E211,1,0,1,0,0,0,0,1,0,1
+E212,0,1,0,1,1,1,0,0,0,0
+E213,0,0,1,0,1,0,0,0,0,1
+E214,1,1,0,0,1,1,1,0,0,0
+E215,0,0,0,0,0,0,1,0,0,0
+E216,0,0,0,1,1,0,1,1,0,0
+E217,0,1,0,0,1,1,0,0,0,1
+E218,0,0,0,1,1,0,1,1,1,0
+E219,0,1,0,0,1,1,0,0,0,1
+E220,0,1,1,1,1,1,0,0,0,0
+E221,1,1,0,1,1,0,1,0,1,0
+E222,0,0,0,0,0,1,0,0,0,1
+E223,1,1,1,1,0,0,0,1,0,1
+E224,1,0,0,0,1,1,0,0,0,0
+E225,1,1,1,0,1,1,1,0,0,1
+E226,0,0,1,0,1,0,0,0,0,1
+E227,1,0,1,0,1,1,0,0,0,1
+E228,1,0,1,0,0,0,0,0,0,0
+E229,0,1,1,1,1,1,1,0,1,1
+E230,0,1,0,0,0,1,0,0,0,0
+E231,1,1,0,0,1,1,1,0,1,0
+E232,0,0,0,0,0,1,0,0,0,1
+E233,0,1,0,0,1,0,0,0,0,1
+E234,1,1,0,1,0,0,0,1,0,1
+E235,0,1,0,0,1,1,0,0,0,0
+E236,1,0,0,1,1,0,1,0,1,0
+E237,0,1,0,0,0,0,0,0,0,1
+E238,1,1,0,1,0,0,1,0,1,0
+E239,1,0,1,1,0,0,0,1,0,0
+E240,1,1,0,1,0,1,1,0,0,0
+E241,1,1,0,1,1,1,1,0,1,0
+E242,0,0,0,1,0,0,1,1,0,0
+E243,1,0,1,0,1,1,0,0,0,1
+E244,1,1,0,1,1,1,1,0,1,0
+E245,0,0,1,1,1,1,0,0,0,0
+E246,0,0,0,0,0,1,0,0,0,1
+E247,0,1,1,0,0,0,1,1,1,0
+E248,0,1,1,0,1,0,0,0,0,1
+E249,0,0,0,1,1,0,1,1,0,0
+E250,1,0,0,1,1,0,1,1,0,0
+E251,1,0,0,1,1,0,1,0,1,0
+E252,1,0,1,0,1,1,0,0,0,1
+E253,0,0,0,0,1,1,0,0,0,1
+E254,1,0,1,0,0,0,0,1,0,1
+E255,0,1,1,0,0,0,0,1,0,0
+E256,1,0,0,1,1,0,1,1,1,0
+E257,0,0,0,1,1,0,1,1,0,0
+E258,1,0,1,0,0,1,0,0,0,1
+E259,1,1,1,1,0,1,1,0,1,1
+E260,1,0,0,1,1,0,0,1,0,0
+E261,0,1,1,1,1,1,0,0,0,0
+E262,1,0,1,0,1,0,0,0,0,1
+E263,0,0,0,0,0,1,0,0,0,1
+E264,0,1,1,0,0,0,0,0,0,1
+E265,0,1,1,0,1,0,0,0,0,1
+E266,1,1,0,1,1,1,1,0,1,0
+E267,0,0,0,1,1,0,1,1,0,0
+E268,1,1,1,1,0,0,1,0,1,1
+E269,0,0,0,1,1,0,1,0,0,0
+E270,1,0,0,1,1,0,1,1,1,0
+E271,0,0,1,0,1,1,0,0,0,1
+E272,0,1,0,0,1,0,0,0,0,1
+E273,0,1,1,0,0,0,0,1,0,0
+E274,1,0,1,1,0,0,0,0,0,1
+E275,0,0,0,1,1,0,0,1,0,0
+E276,0,1,1,1,1,1,0,0,0,0
+E277,0,1,0,0,0,1,0,0,0,1
+E278,0,1,1,1,1,1,0,0,0,0
+E279,0,1,0,1,0,0,0,1,0,0
+E280,1,0,1,0,1,1,0,0,0,1
+E281,1,1,0,1,1,1,1,0,1,0
+E282,1,0,0,1,1,0,0,1,1,0
+E283,0,0,0,1,1,0,1,1,0,0
+E284,0,1,1,1,0,1,0,0,0,0
+E285,0,0,0,1,0,0,1,1,0,0
+E286,0,1,0,0,0,1,0,0,0,1
+E287,0,1,0,0,0,1,0,0,0,1
+E288,0,1,0,0,1,1,0,0,0,1
+E289,0,0,0,0,1,0,1,0,1,0
+E290,0,0,0,0,1,1,0,0,0,1
+E291,0,0,0,1,1,0,1,1,0,0
+E292,0,1,1,1,1,1,0,0,0,0
+E293,0,0,0,1,1,0,0,0,1,0
+E294,0,1,1,0,0,0,1,1,1,0
+E295,0,0,1,0,0,0,1,1,1,0
+E296,1,0,0,1,1,0,1,1,1,0
+E297,0,1,1,0,1,0,0,0,0,0
+E298,0,0,1,1,0,0,0,1,0,1
+E299,0,0,0,1,1,0,0,1,0,0
+E300,1,1,1,1,0,0,0,1,0,1
+E301,0,0,0,0,1,1,0,0,0,1
+E302,0,1,0,0,1,1,0,0,0,1
+E303,0,0,0,0,1,1,0,0,0,1
+E304,0,1,1,1,1,1,0,0,0,0
+E305,0,1,1,1,1,0,0,0,0,0
+E306,1,0,1,0,1,1,0,0,0,0
+E307,1,0,0,1,1,0,1,1,1,0
+E308,0,1,0,1,1,1,0,0,1,0
+E309,0,0,0,1,1,0,1,1,0,0
+E310,1,0,0,1,0,1,0,0,1,0
+E311,0,0,0,1,1,0,1,1,0,0
+E312,0,1,1,1,0,1,0,0,0,0
+E313,0,0,0,0,1,1,0,0,0,1
+E314,0,1,1,0,1,1,0,0,0,0
+E315,0,0,1,1,0,1,0,0,0,0
+E316,0,1,1,1,1,1,0,0,0,0
+E317,0,0,0,0,0,0,1,1,0,0
+E318,0,0,0,1,1,0,1,1,0,0
+E319,0,0,1,1,1,0,0,0,0,0
+E320,1,1,1,1,0,0,0,1,0,1
+E321,0,0,0,1,1,0,1,0,0,0
+E322,1,1,1,1,1,1,1,0,1,1
+E323,0,1,1,1,1,1,0,0,0,0
+E324,0,0,0,1,1,0,0,1,0,0
+E325,0,0,0,0,0,0,0,0,1,0
+E326,1,1,1,1,0,0,0,1,0,1
+E327,0,0,0,1,1,0,1,1,0,0
+E328,1,1,0,1,0,0,1,0,1,0
+E329,1,1,1,1,0,0,0,1,0,1
+E330,0,1,0,1,1,1,0,0,0,0
+E331,0,1,1,0,0,0,1,1,1,0
+E332,1,1,0,1,1,1,0,0,1,0
+E333,1,0,0,1,0,0,0,1,0,1
+E334,0,0,0,1,1,0,0,1,0,0
+E335,1,1,0,1,0,0,0,1,0,1
+E336,0,0,0,1,1,1,0,0,0,0
+E337,0,1,0,1,0,1,1,0,1,0
+E338,1,0,0,1,1,0,0,0,1,0
+E339,0,0,0,1,1,0,1,1,0,0
+E340,1,1,1,1,0,0,0,0,0,1
+E341,0,1,1,0,1,0,0,0,0,1
+E342,1,0,0,1,0,1,1,0,1,0
+E343,1,0,1,0,1,0,0,0,0,1
+E344,0,0,1,0,0,0,0,0,0,1
+E345,0,1,0,1,1,1,0,0,0,0
+E346,1,0,1,1,0,1,1,0,1,1
+E347,0,1,1,0,1,0,0,0,0,1
+E348,0,1,1,0,1,0,0,0,0,1
+E349,0,1,1,0,0,1,0,0,0,0
+E350,1,0,1,1,0,0,0,1,0,1
+E351,1,1,0,1,1,1,0,0,1,0
+E352,0,1,1,1,1,1,0,0,0,0
+E353,1,0,0,1,1,0,1,1,1,0
+E354,0,1,1,1,1,1,0,0,0,0
+E355,0,0,1,0,1,1,0,0,0,1
+E356,1,0,1,0,0,1,0,0,0,1
+E357,0,1,1,1,0,0,0,0,0,0
+E358,0,1,0,0,1,0,0,0,0,1
+E359,1,0,1,0,1,1,0,0,0,0
+E360,0,0,1,1,1,1,0,0,0,0
+E361,0,1,0,0,0,0,1,1,0,0
+E362,0,1,1,0,0,0,0,1,1,0
+E363,0,1,1,0,0,0,1,1,1,0
+E364,0,1,1,0,0,0,1,1,1,0
+E365,0,1,1,0,0,0,0,0,0,1
+E366,1,1,1,1,0,0,0,1,0,0
+E367,0,0,1,0,1,1,0,0,0,1
+E368,1,0,1,1,0,0,0,1,0,1
+E369,0,1,0,1,0,0,0,1,0,1
+E370,1,1,0,0,1,0,1,0,1,0
+E371,1,0,1,0,1,0,0,0,0,1
+E372,1,1,1,1,0,0,0,1,0,1
+E373,1,1,1,1,1,1,1,0,0,0
+E374,1,1,1,1,1,1,1,0,0,1
+E375,0,1,1,1,0,0,0,1,0,1
+E376,0,1,1,1,0,0,0,1,0,1
+E377,1,1,1,1,0,0,0,0,0,1
+E378,0,1,0,1,0,0,0,1,0,1
+E379,1,1,1,1,0,0,0,0,0,0
+E380,1,1,1,1,0,0,0,1,0,1
+E381,0,1,0,1,1,1,1,0,1,0
+E382,0,1,0,0,0,0,1,1,0,0
+E383,0,1,1,0,0,0,1,1,1,0
+E384,0,1,1,0,0,0,1,1,1,0
+E385,0,1,1,1,0,1,1,0,0,1
+E386,0,1,1,0,0,0,1,1,1,0
+E387,0,1,0,1,1,0,0,0,1,0
+E388,0,1,1,0,0,0,1,1,1,0
+E389,0,1,1,0,0,0,1,1,1,0
+E390,1,1,1,1,1,0,0,0,1,1
+E391,0,1,1,0,0,0,1,1,0,0
+E392,0,0,1,0,0,0,1,1,1,0
+E393,1,0,0,1,0,1,1,0,1,0
+E394,0,1,1,0,0,0,1,1,1,0
+E395,0,1,1,0,0,0,1,1,0,0
+E396,0,1,0,0,0,0,1,0,1,0
+E397,0,1,1,0,0,0,1,1,1,0
+E398,1,1,0,0,1,1,1,0,1,0
+E399,0,1,1,1,1,1,1,0,1,1
diff --git a/Test2.csv b/Test2.csv
new file mode 100644
--- /dev/null
+++ b/Test2.csv
@@ -0,0 +1,1026 @@
+Number Of Events,400
+Number Of Rooms,10
+Number Of People,200
+Number Of Time Slots,45
+
+Person To Event Lookup
+
+Person0,23,34,49,100,160,174,230,242,247,256,267,272,278,282,323,363,373
+Person1,14,22,23,34,66,100,127,142,160,174,197,242,250,272,278,323,373
+Person2,23,30,34,80,100,160,174,223,224,230,242,252,256,272,278,323,373
+Person3,22,23,30,80,90,100,104,127,160,174,242,245,272,278,282,323,373,381
+Person4,9,23,30,59,80,90,100,160,174,197,219,230,272,278,301,323,343,373
+Person5,10,30,90,100,108,109,114,160,223,242,256,278,308,323,363,373
+Person6,10,14,30,64,90,100,118,123,124,135,241,278,282,308,322,323,343,373
+Person7,10,22,30,59,90,112,125,127,135,136,137,139,197,276,278,308,323,343,373
+Person8,10,13,30,80,128,135,140,144,146,147,148,151,219,223,230,241,278,343
+Person9,10,13,22,131,135,152,155,156,163,165,167,256,267,276,282,284,308,343
+Person10,10,13,58,64,80,90,131,169,173,174,175,176,178,241,269,284,320,343
+Person11,10,13,35,131,179,180,181,188,193,194,196,197,276,284,295,308,320,343,348
+Person12,10,13,30,35,80,131,182,192,210,212,241,246,284,295,305,320,343
+Person13,13,23,35,58,131,142,184,216,218,224,227,232,246,276,284,295,305,308,320
+Person14,10,35,80,131,135,154,226,236,239,241,242,246,248,267,284,288,305,320
+Person15,23,35,131,186,229,234,245,246,257,258,269,276,277,284,288,295,305,308
+Person16,1,10,35,80,99,131,186,229,246,259,260,263,266,284,288,305,320,391
+Person17,22,23,35,99,131,183,186,229,246,272,278,284,285,291,305,308,391
+Person18,28,35,80,99,145,183,186,199,229,246,293,294,297,305,349,391
+Person19,35,99,145,149,158,162,183,186,213,229,243,246,299,301,305,308,349,391
+Person20,43,65,80,99,122,127,149,186,191,202,246,284,298,302,305,349,391,397
+Person21,65,99,149,186,189,205,219,223,238,241,277,290,303,304,306,349
+Person22,43,122,135,149,186,225,246,256,264,265,276,280,307,308,310,317,349,383,397
+Person23,16,30,35,43,71,73,121,122,149,186,231,240,251,265,282,295,349,391,397
+Person24,54,64,73,99,122,142,149,183,186,187,214,240,241,251,253,312,339,349,397
+Person25,16,71,73,121,122,127,135,149,214,222,229,240,251,275,276,279,288,318,349
+Person26,43,54,65,73,133,187,201,214,240,251,267,295,305,321,339,349,391,397
+Person27,16,71,73,99,110,121,133,145,157,183,217,219,229,240,241,251,269,314
+Person28,54,65,73,110,133,135,149,157,187,217,221,233,240,276,288,314,339,397
+Person29,16,43,71,73,110,121,133,145,157,217,229,233,240,256,295,300,314,391
+Person30,54,65,73,99,110,126,133,157,183,187,233,240,241,265,292,314,339,397
+Person31,16,71,73,110,121,126,133,135,145,157,214,229,233,240,276,288,314
+Person32,43,73,86,110,126,133,157,172,187,217,230,233,240,295,314,339,397
+Person33,71,86,96,110,126,133,157,172,183,208,229,233,265,314,319,320,326,328
+Person34,22,26,86,98,110,126,133,157,166,172,187,208,214,233,270,288,314,319
+Person35,26,43,56,65,71,86,110,126,157,166,172,217,233,255,281,297,314,319
+Person36,26,54,56,110,126,157,166,172,183,187,200,233,255,265,271,281,297,319
+Person37,26,56,71,86,111,126,166,172,214,230,274,281,288,314,319,329,336
+Person38,16,43,56,87,111,126,166,172,187,200,217,281,313,319,330,332,336
+Person39,5,54,56,71,87,111,126,166,172,183,200,208,265,281,319,333,335
+Person40,5,56,65,86,87,166,172,187,214,255,281,288,297,319,337,343,349
+Person41,5,16,43,71,87,111,166,217,281,319,325,336,341,351,352,353,355,391
+Person42,5,26,54,107,143,166,183,187,208,230,235,255,265,281,319,341,364,398
+Person43,5,86,87,97,107,111,159,166,235,281,288,297,320,341,342,359,360,364,398
+Person44,5,16,22,26,97,99,107,172,235,255,336,341,348,357,361,362,368,398
+Person45,17,54,65,87,97,135,185,208,241,341,368,371,372,374,379,398
+Person46,17,26,86,94,97,145,160,185,235,255,262,296,341,364,381,383,398
+Person47,16,17,56,75,87,97,111,168,185,220,235,276,296,368,385,387,398
+Person48,26,54,68,75,94,97,107,228,230,235,255,289,296,311,341,354,364,398
+Person49,56,75,86,87,97,111,185,205,235,281,289,296,311,320,324,354,368,398
+Person50,16,19,26,60,75,94,97,107,235,255,289,295,311,336,341,354,364,396,398
+Person51,17,19,56,60,68,75,87,94,111,185,195,214,235,283,289,296,311,331,368
+Person52,26,60,69,70,75,94,107,115,195,205,217,255,289,311,331,341,354,364,392
+Person53,17,56,60,69,70,75,87,94,111,115,185,195,265,283,289,311,331,368,396
+Person54,19,60,68,69,75,94,97,106,107,115,132,133,195,255,289,311,331,354,364,392
+Person55,17,60,69,75,84,94,106,115,132,185,195,205,214,283,289,311,331,341,368,393
+Person56,60,69,75,84,106,107,115,132,195,217,289,311,331,354,363,364,392,393,396
+Person57,60,68,69,70,106,132,177,195,265,283,289,311,331,366,368,393
+Person58,60,84,97,106,115,132,164,195,205,331,345,354,364,367,376,392,393
+Person59,5,19,60,106,132,164,177,185,214,283,296,331,345,368,375,380,393,396
+Person60,17,67,70,106,115,132,164,207,217,315,345,367,375,392,393
+Person61,8,20,67,84,106,132,164,177,207,283,286,296,315,345,375,388,393
+Person62,8,19,21,67,105,119,164,207,286,315,345,354,375,382,388,392,393
+Person63,5,8,21,67,70,103,119,164,207,208,211,286,315,345,375,382,388
+Person64,8,17,21,67,84,103,119,164,207,211,283,286,315,345,375,382,388
+Person65,8,19,21,67,103,106,161,164,207,211,273,286,297,315,375,382,388
+Person66,8,21,25,33,67,68,69,70,103,113,207,211,268,273,286,336,388
+Person67,8,21,25,33,67,84,105,134,205,207,211,268,273,286,340,382,388,392
+Person68,8,20,21,25,33,67,69,113,115,119,132,134,208,211,268,388,396
+Person69,8,20,21,25,33,70,134,164,177,207,211,225,273,283,286,296,340
+Person70,8,25,33,84,103,119,134,209,211,225,261,268,297,315,375,382,388
+Person71,19,25,33,67,69,105,106,209,211,225,249,261,273,287,336,367
+Person72,17,25,33,61,107,113,115,119,132,177,225,249,261,287,310,358,392
+Person73,25,33,61,84,164,185,190,208,209,225,261,268,273,287,309,358,386
+Person74,19,25,61,92,119,190,195,225,254,261,283,287,340,358,367,386
+Person75,25,61,70,92,113,177,190,207,225,249,254,261,273,287,297,309,358
+Person76,61,68,84,92,119,161,190,209,211,254,261,286,287,309,336,358,386
+Person77,61,82,92,116,231,249,254,261,273,287,296,309,315,340,358,367,392
+Person78,21,29,61,82,92,113,119,190,208,231,254,287,309,345,350,358,386
+Person79,29,48,61,82,92,104,105,134,198,209,231,254,261,268,273,287,309,358
+Person80,21,29,61,81,82,92,104,119,190,231,249,254,287,309,340,354,356,358,367
+Person81,29,48,61,81,82,92,103,104,113,177,231,254,261,273,309,365,373,386
+Person82,29,82,92,104,105,134,170,198,209,215,231,254,265,268,356,375,382,388
+Person83,29,74,81,82,92,170,190,215,231,249,322,337,340,367,389,390,393,395
+Person84,11,29,74,82,103,113,129,170,177,198,205,215,337,346,386,389,397,398,399
+Person85,0,11,29,48,74,81,82,105,129,134,170,196,209,215,268,346,378,389
+Person86,11,15,29,74,82,129,170,196,198,206,215,249,275,310,337,340,378,389
+Person87,11,15,74,81,104,113,130,137,141,170,196,206,215,275,316,356,378,386,396
+Person88,11,15,48,74,130,134,137,141,150,153,170,196,198,206,209,215,244,275,316,378
+Person89,11,15,74,81,130,137,141,150,153,170,196,206,215,244,249,316,337,340,346,378
+Person90,11,15,68,74,113,129,130,141,150,153,170,196,198,206,244,275,316,356,378,386
+Person91,11,15,48,74,81,130,134,137,141,150,153,196,205,206,209,215,244,316,346,378
+Person92,11,15,74,129,130,141,150,153,198,206,244,249,253,275,316,337,340,377,378
+Person93,11,15,81,113,130,137,141,150,153,170,206,253,316,346,356,377,378,386,389,399
+Person94,15,48,104,129,130,134,141,150,153,190,206,209,228,253,275,316,377,399
+Person95,15,116,130,137,150,153,206,215,228,244,249,253,316,337,340,346,359,399
+Person96,46,129,130,141,150,153,198,228,253,266,275,316,356,359,367,378,386,389,399
+Person97,2,4,48,81,104,150,153,201,228,253,266,293,310,346,347,359,399
+Person98,1,9,10,18,116,198,201,228,244,253,266,275,293,300,337,359,362,399
+Person99,13,18,141,193,201,228,253,266,283,293,300,346,350,351,356,362,377,389
+Person100,18,48,51,104,201,225,228,266,275,290,300,318,330,333,350,351,359,362
+Person101,18,46,51,147,175,193,194,228,244,266,290,292,300,318,330,350,351,362,377
+Person102,18,46,51,62,117,147,175,194,201,266,290,300,318,330,333,350,351,359,362,389
+Person103,18,46,51,62,76,117,147,175,194,290,293,300,330,350,351,355,362,377
+Person104,18,51,62,76,78,147,194,232,290,300,318,330,335,350,351,355,359
+Person105,51,62,76,78,117,120,147,175,232,260,290,293,330,335,350,351,355,377
+Person106,51,62,76,78,79,120,147,175,196,232,260,266,290,300,318,330,335,355,399
+Person107,51,62,76,79,102,147,175,232,260,290,293,330,333,335,350,351,355,359
+Person108,18,27,46,62,76,78,79,102,147,175,232,260,318,335,355,377,399
+Person109,27,51,76,79,102,117,137,144,147,175,193,194,196,232,243,292,335,355,357
+Person110,27,76,79,102,144,201,228,231,232,243,260,293,300,333,335,355,357
+Person111,27,76,78,79,102,144,194,232,243,253,292,318,335,342,346,350,357,384
+Person112,27,102,129,144,165,193,243,260,335,342,351,355,357,359,360,371,374,384
+Person113,27,77,91,102,137,143,165,194,243,333,342,357,362,374,377,384,396
+Person114,37,63,77,78,91,102,159,165,236,239,243,260,293,342,360,374,384,390
+Person115,37,63,91,95,143,165,193,194,236,239,243,318,342,360,374,384,390
+Person116,27,37,38,63,91,95,101,159,165,239,243,260,333,342,360,374,384,390
+Person117,37,45,63,77,78,91,95,102,120,129,165,236,239,337,342,360,374,384,390
+Person118,6,37,38,63,79,95,101,137,143,173,193,239,243,342,356,374,384,390
+Person119,6,24,37,45,48,63,77,95,159,165,173,236,239,290,293,330,333,374,390
+Person120,6,24,38,63,77,78,79,95,101,120,173,232,239,318,327,357,379,390
+Person121,6,24,37,45,63,77,95,128,143,165,173,226,236,239,327,379,390
+Person122,6,38,63,79,95,101,128,144,159,226,280,327,333,334,357,379
+Person123,6,37,40,45,78,128,165,173,180,226,236,262,280,327,334,379
+Person124,6,38,40,62,91,101,128,180,193,212,216,239,262,280,327,334,379
+Person125,40,45,128,138,144,180,212,226,227,236,260,262,280,302,317,334,357,379
+Person126,3,38,123,128,138,140,173,180,212,227,280,294,302,303,317,334,371,379
+Person127,45,88,91,101,123,128,138,140,180,212,216,227,262,280,294,302,317,334
+Person128,3,38,50,123,128,138,140,144,180,212,226,227,236,262,280,294,302,317,334
+Person129,4,40,45,88,123,139,140,173,180,212,227,280,302,303,317,353,370,371
+Person130,3,4,37,38,50,91,114,139,140,143,180,216,227,294,302,317,353,379
+Person131,4,40,45,62,88,101,114,128,139,140,144,155,159,226,271,302,317,353,370
+Person132,3,4,6,38,50,114,139,140,152,155,173,257,262,271,294,317,353,371
+Person133,4,24,40,45,88,91,114,120,139,152,155,216,238,257,271,302,353,370
+Person134,3,4,39,50,114,139,143,144,152,155,179,226,236,238,257,271,280,353
+Person135,4,31,88,123,139,152,155,159,179,238,257,271,353,361,370,371,376,387
+Person136,3,4,31,39,114,139,152,155,173,179,238,257,262,271,353,361,372,376,387
+Person137,4,31,88,123,139,152,179,216,222,238,257,271,303,327,361,372,376,387
+Person138,3,31,52,114,143,152,155,169,179,222,226,238,257,271,334,337,361,372,387
+Person139,31,53,88,152,159,169,179,189,222,227,238,257,271,344,356,357,360,361,372,387
+Person140,3,31,50,53,118,152,169,189,222,238,257,262,294,327,344,371,379,387
+Person141,0,2,4,18,31,37,40,46,53,88,118,155,169,180,189,238,344,370,383
+Person142,0,3,27,28,31,38,48,53,62,118,169,179,189,227,258,372,374,383
+Person143,0,2,31,45,50,52,53,63,68,88,118,169,258,294,313,327,344,383
+Person144,0,3,28,40,53,79,91,101,104,118,120,155,189,258,313,344,370,376,383
+Person145,0,2,42,51,52,53,123,129,138,169,179,184,222,227,244,258,313,372
+Person146,0,28,42,49,50,53,57,88,189,258,294,302,313,327,344,376,383
+Person147,0,2,40,42,52,53,57,112,114,140,191,222,258,312,313,370
+Person148,28,42,49,95,112,123,169,184,189,258,312,313,324,361,372,383
+Person149,2,42,50,52,57,112,118,179,188,191,222,258,312,313,324,344,376
+Person150,28,42,49,112,114,140,184,188,189,258,294,312,313,321,324,361,370,383
+Person151,2,42,57,112,118,123,168,169,178,182,188,191,306,312,313,321,324,372
+Person152,28,42,49,50,112,163,178,182,184,189,220,304,312,317,321,324,344,383
+Person153,2,42,57,112,163,176,178,182,191,202,220,222,312,324,332,370,385
+Person154,28,49,112,163,167,176,178,182,184,220,237,304,306,312,324,332,342,385
+Person155,57,112,163,167,176,178,182,191,220,221,237,304,312,324,332,372,385,387
+Person156,2,49,125,163,167,176,178,182,220,221,237,304,321,324,329
+Person157,47,125,158,167,176,178,182,191,220,221,237,247,263,304,329,332,385
+Person158,47,49,89,125,148,167,184,220,221,237,247,263,304,307,321,328,329,385
+Person159,28,47,57,89,125,146,148,163,167,221,237,250,263,307,329,332,352,385
+Person160,47,125,146,148,167,176,178,182,202,221,237,250,263,307,321,329,352,366
+Person161,89,125,146,148,167,199,221,237,247,263,304,307,326,328,329,332,352,366,385
+Person162,55,85,89,125,146,148,163,167,199,221,250,263,307,321,352,366,387
+Person163,2,41,55,85,89,125,146,148,176,181,199,202,247,264,307,332,366
+Person164,28,55,85,89,146,148,181,199,210,250,264,285,307,321,326,328,366,380
+Person165,32,41,44,47,55,72,85,124,146,158,210,218,264,285,326,366,380,381
+Person166,9,32,41,44,55,72,85,124,199,202,210,218,264,285,326,366,380
+Person167,32,41,44,47,55,72,85,108,124,146,204,210,218,252,264,285,328,380
+Person168,9,14,32,41,44,55,66,72,108,124,181,199,204,210,218,380,394,395
+Person169,14,32,41,44,47,66,72,98,108,124,210,218,252,279,380,394,395
+Person170,32,44,66,72,85,98,108,124,181,199,210,218,285,381,394,395
+Person171,9,32,41,44,66,72,98,108,124,218,279,365,380,394,395
+Person172,32,44,55,66,72,98,108,124,181,203,252,365,394,395
+Person173,36,98,108,136,148,279,285,307,326,328,332,352,365,381,394,395
+Person174,9,36,41,44,55,66,98,108,136,171,279,365,380,394,395
+Person175,1,72,89,98,108,124,136,181,182,264,274,279,365,394,395
+Person176,1,36,98,125,136,148,156,184,199,210,221,279,298,352,365,381
+Person177,1,9,66,136,156,204,220,237,263,279,285,298,321,326,329,333
+Person178,1,36,64,93,156,191,247,274,298,332,348,361,365,366,376,380,384
+Person179,31,40,41,64,85,93,98,136,142,156,171,203,204,250,264,298,385,394
+Person180,36,44,47,64,93,136,156,171,220,252,274,298,322,329,347,348,352
+Person181,1,49,52,53,55,93,156,203,204,218,219,269,298,322,347,365,366,381
+Person182,1,9,36,57,59,66,72,76,85,93,136,156,219,269,274,298,347
+Person183,12,59,89,93,109,142,156,178,202,203,218,219,224,247,282,298,329,347
+Person184,12,32,59,64,93,95,109,151,156,197,204,245,250,269,274,298,347,365
+Person185,1,12,36,85,96,109,151,197,203,213,219,234,252,301,307,322,347,348,387
+Person186,12,42,49,59,64,96,109,142,151,192,213,223,224,234,274,347,381,395
+Person187,2,9,12,96,109,151,162,192,213,219,223,234,245,269,270,322,347
+Person188,12,59,64,83,96,109,151,162,192,234,247,270,282,291,299,301,328,348
+Person189,12,58,83,96,109,142,151,162,192,197,219,224,234,259,270,291,299,322
+Person190,58,59,64,83,96,151,162,192,223,234,245,248,259,269,270,291,299,369
+Person191,58,96,127,162,192,234,248,250,259,270,282,291,299,301,322,338,348,369
+Person192,12,14,58,59,83,93,96,142,162,192,197,248,252,256,259,270,291,299
+Person193,34,58,109,127,151,162,192,223,224,248,259,269,270,291,299,322,338,369,381
+Person194,9,12,34,59,83,154,162,234,245,248,256,259,270,282,291,299,348
+Person195,34,66,93,109,127,151,154,197,247,248,259,267,291,299,301,322,338,369
+Person196,14,34,83,154,162,174,192,223,234,242,248,250,256,259,267,272,291,369
+Person197,34,100,127,154,160,174,191,224,242,248,252,259,267,272,282,338,369
+Person198,0,23,34,83,100,154,160,174,197,242,245,248,256,264,267,272,369,381
+Person199,9,12,22,23,34,93,100,127,160,174,223,242,267,272,277,301,323,352,373
+
+Event To Person Lookup
+
+Event0,85,141,142,143,144,145,146,147,198
+Event1,16,98,175,176,177,178,181,182,185
+Event2,97,141,143,145,147,149,151,153,156,163,187
+Event3,126,128,130,132,134,136,138,140,142,144
+Event4,97,129,130,131,132,133,134,135,136,137,141
+Event5,39,40,41,42,43,44,59,63
+Event6,118,119,120,121,122,123,124,132
+Event7
+Event8,61,62,63,64,65,66,67,68,69,70
+Event9,4,98,166,168,171,174,177,182,187,194,199
+Event10,5,6,7,8,9,10,11,12,14,16,98
+Event11,84,85,86,87,88,89,90,91,92,93
+Event12,183,184,185,186,187,188,189,192,194,199
+Event13,8,9,10,11,12,13,99
+Event14,1,6,168,169,192,196
+Event15,86,87,88,89,90,91,92,93,94,95
+Event16,23,25,27,29,31,38,41,44,47,50
+Event17,45,46,47,51,53,55,60,64,72
+Event18,98,99,100,101,102,103,104,108,141
+Event19,50,51,54,59,62,65,71,74
+Event20,61,68,69
+Event21,62,63,64,65,66,67,68,69,78,80
+Event22,1,3,7,9,17,34,44,199
+Event23,0,1,2,3,4,13,15,17,198,199
+Event24,119,120,121,133
+Event25,66,67,68,69,70,71,72,73,74,75
+Event26,34,35,36,37,42,44,46,48,50,52
+Event27,108,109,110,111,112,113,116,142
+Event28,18,142,144,146,148,150,152,154,159,164
+Event29,78,79,80,81,82,83,84,85,86
+Event30,2,3,4,5,6,7,8,12,23
+Event31,135,136,137,138,139,140,141,142,143,179
+Event32,165,166,167,168,169,170,171,172,184
+Event33,66,67,68,69,70,71,72,73
+Event34,0,1,2,193,194,195,196,197,198,199
+Event35,11,12,13,14,15,16,17,18,19,23
+Event36,173,174,176,178,180,182,185
+Event37,114,115,116,117,118,119,121,123,130,141
+Event38,116,118,120,122,124,126,128,130,132,142
+Event39,134,136
+Event40,123,124,125,129,131,133,141,144,147,179
+Event41,163,165,166,167,168,169,171,174,179
+Event42,145,146,147,148,149,150,151,152,153,186
+Event43,20,22,23,26,29,32,35,38,41
+Event44,165,166,167,168,169,170,171,172,174,180
+Event45,117,119,121,123,125,127,129,131,133,143
+Event46,96,101,102,103,108,141
+Event47,157,158,159,160,165,167,169,180
+Event48,79,81,85,88,91,94,97,100,119,142
+Event49,0,146,148,150,152,154,156,158,181,186
+Event50,128,130,132,134,140,143,146,149,152
+Event51,100,101,102,103,104,105,106,107,109,145
+Event52,138,143,145,147,149,181
+Event53,139,140,141,142,143,144,145,146,147,181
+Event54,24,26,28,30,36,39,42,45,48
+Event55,162,163,164,165,166,167,168,172,174,181
+Event56,35,36,37,38,39,40,47,49,51,53
+Event57,146,147,149,151,153,155,159,182
+Event58,10,13,189,190,191,192,193
+Event59,4,7,182,183,184,186,188,190,192,194
+Event60,50,51,52,53,54,55,56,57,58,59
+Event61,72,73,74,75,76,77,78,79,80,81
+Event62,102,103,104,105,106,107,108,124,131,142
+Event63,114,115,116,117,118,119,120,121,122,143
+Event64,6,10,24,178,179,180,184,186,188,190
+Event65,20,21,26,28,30,35,40,45
+Event66,1,168,169,170,171,172,174,177,182,195
+Event67,60,61,62,63,64,65,66,67,68,71
+Event68,48,51,54,57,66,76,90,143
+Event69,52,53,54,55,56,57,66,68,71
+Event70,52,53,57,60,63,66,69,75
+Event71,23,25,27,29,31,33,35,37,39,41
+Event72,165,166,167,168,169,170,171,172,175,182
+Event73,23,24,25,26,27,28,29,30,31,32
+Event74,83,84,85,86,87,88,89,90,91,92
+Event75,47,48,49,50,51,52,53,54,55,56
+Event76,103,104,105,106,107,108,109,110,111,182
+Event77,113,114,117,119,120,121
+Event78,104,105,106,108,111,114,117,120,123
+Event79,106,107,108,109,110,111,118,120,122,144
+Event80,2,3,4,8,10,12,14,16,18,20
+Event81,80,81,83,85,87,89,91,93,97
+Event82,77,78,79,80,81,82,83,84,85,86
+Event83,188,189,190,192,194,196,198
+Event84,55,56,58,61,64,67,70,73,76
+Event85,162,163,164,165,166,167,170,179,182,185
+Event86,32,33,34,35,37,40,43,46,49
+Event87,38,39,40,41,43,45,47,49,51,53
+Event88,127,129,131,133,135,137,139,141,143,146
+Event89,158,159,161,162,163,164,175,183
+Event90,3,4,5,6,7,10
+Event91,113,114,115,116,117,124,127,130,133,144
+Event92,74,75,76,77,78,79,80,81,82,83
+Event93,178,179,180,181,182,183,184,192,195,199
+Event94,46,48,50,51,52,53,54,55
+Event95,115,116,117,118,119,120,121,122,148,184
+Event96,33,185,186,187,188,189,190,191,192
+Event97,43,44,45,46,47,48,49,50,54,58
+Event98,34,169,170,171,172,173,174,175,176,179
+Event99,16,17,18,19,20,21,24,27,30,44
+Event100,0,1,2,3,4,5,6,197,198,199
+Event101,116,118,120,122,124,127,131,144
+Event102,107,108,109,110,111,112,113,114,117
+Event103,63,64,65,66,70,81,84
+Event104,3,79,80,81,82,87,94,97,100,144
+Event105,62,67,71,79,82,85
+Event106,54,55,56,57,58,59,60,61,65,71
+Event107,42,43,44,48,50,52,54,56,72
+Event108,5,167,168,169,170,171,172,173,174,175
+Event109,5,183,184,185,186,187,188,189,193,195
+Event110,27,28,29,30,31,32,33,34,35,36
+Event111,37,38,39,41,43,47,49,51,53
+Event112,7,147,148,149,150,151,152,153,154,155
+Event113,66,68,72,75,78,81,84,87,90,93
+Event114,5,130,131,132,133,134,136,138,147,150
+Event115,52,53,54,55,56,58,60,68,72
+Event116,77,95,98
+Event117,102,103,105,109
+Event118,6,140,141,142,143,144,149,151
+Event119,62,63,64,68,70,72,74,76,78,80
+Event120,105,106,117,120,133,144
+Event121,23,25,27,29,31
+Event122,20,22,23,24,25
+Event123,6,126,127,128,129,135,137,145,148,151
+Event124,6,165,166,167,168,169,170,171,172,175
+Event125,7,156,157,158,159,160,161,162,163,176
+Event126,30,31,32,33,34,35,36,37,38,39
+Event127,1,3,7,20,25,191,193,195,197,199
+Event128,8,121,122,123,124,125,126,127,128,131
+Event129,84,85,86,90,92,94,96,112,117,145
+Event130,87,88,89,90,91,92,93,94,95,96
+Event131,9,10,11,12,13,14,15,16,17
+Event132,54,55,56,57,58,59,60,61,68,72
+Event133,26,27,28,29,30,31,32,33,34,54
+Event134,67,68,69,70,79,82,85,88,91,94
+Event135,6,7,8,9,14,22,25,28,31,45
+Event136,7,173,174,175,176,177,179,180,182
+Event137,7,87,88,89,91,93,95,109,113,118
+Event138,125,126,127,128,145
+Event139,7,129,130,131,132,133,134,135,136,137
+Event140,8,126,127,128,129,130,131,132,147,150
+Event141,87,88,89,90,91,92,93,94,96,99
+Event142,1,13,24,179,183,186,189,192
+Event143,42,113,115,118,121,130,134,138
+Event144,8,109,110,111,112,122,125,128,131,134
+Event145,18,19,27,29,31,46
+Event146,8,159,160,161,162,163,164,165,167
+Event147,8,101,102,103,104,105,106,107,108,109
+Event148,8,158,159,160,161,162,163,164,173,176
+Event149,19,20,21,22,23,24,25,28
+Event150,88,89,90,91,92,93,94,95,96,97
+Event151,8,184,185,186,187,188,189,190,193,195
+Event152,9,132,133,134,135,136,137,138,139,140
+Event153,88,89,90,91,92,93,94,95,96,97
+Event154,14,194,195,196,197,198
+Event155,9,131,132,133,134,135,136,138,141,144
+Event156,9,176,177,178,179,180,181,182,183,184
+Event157,27,28,29,30,31,32,33,34,35,36
+Event158,19,157,165
+Event159,43,114,116,119,122,131,135,139
+Event160,0,1,2,3,4,5,46,197,198,199
+Event161,65,76
+Event162,19,187,188,189,190,191,192,193,194,196
+Event163,9,152,153,154,155,156,159,162
+Event164,58,59,60,61,62,63,64,65,69,73
+Event165,9,112,113,114,115,116,117,119,121,123
+Event166,34,35,36,37,38,39,40,41,42,43
+Event167,9,154,155,156,157,158,159,160,161,162
+Event168,47,151
+Event169,10,138,139,140,141,142,143,145,148,151
+Event170,82,83,84,85,86,87,88,89,90,93
+Event171,174,179,180
+Event172,32,33,34,35,36,37,38,39,40,44
+Event173,10,118,119,120,121,123,126,129,132,136
+Event174,0,1,2,3,4,10,196,197,198,199
+Event175,10,101,102,103,105,106,107,108,109
+Event176,10,153,154,155,156,157,160,163
+Event177,57,59,61,69,72,75,81,84
+Event178,10,151,152,153,154,155,156,157,160,183
+Event179,11,134,135,136,137,138,139,142,145,149
+Event180,11,123,124,125,126,127,128,129,130,141
+Event181,11,163,164,168,170,172,175
+Event182,12,151,152,153,154,155,156,157,160,175
+Event183,17,18,19,24,27,30,33,36,39,42
+Event184,13,145,148,150,152,154,158,176
+Event185,45,46,47,49,51,53,55,59,73
+Event186,15,16,17,18,19,20,21,22,23,24
+Event187,24,26,28,30,32,34,36,38,40,42
+Event188,11,149,150,151
+Event189,21,139,140,141,142,144,146,148,150,152
+Event190,73,74,75,76,78,80,83,94
+Event191,20,147,149,151,153,155,157,178,197
+Event192,12,186,187,188,189,190,191,192,193,196
+Event193,11,99,101,109,112,115,118,124
+Event194,11,101,102,103,104,109,111,113,115
+Event195,51,52,53,54,55,56,57,58,74
+Event196,11,85,86,87,88,89,90,91,106,109
+Event197,1,4,7,11,184,185,189,192,195,198
+Event198,79,82,84,86,88,90,92,96,98
+Event199,18,161,162,163,164,166,168,170,176
+Event200,36,38,39
+Event201,26,97,98,99,100,102,110
+Event202,20,153,160,163,166,183
+Event203,172,179,181,183,185
+Event204,167,168,177,179,181,184
+Event205,21,49,52,55,58,67,84,91
+Event206,86,87,88,89,90,91,92,93,94,95
+Event207,60,61,62,63,64,65,66,67,69,75
+Event208,33,34,39,42,45,63,68,73,78
+Event209,70,71,73,76,79,82,85,88,91,94
+Event210,12,164,165,166,167,168,169,170,176
+Event211,63,64,65,66,67,68,69,70,71,76
+Event212,12,124,125,126,127,128,129
+Event213,19,185,186,187
+Event214,24,25,26,31,34,37,40,51,55,59
+Event215,82,83,84,85,86,87,88,89,91,95
+Event216,13,124,127,130,133,137
+Event217,27,28,29,32,35,38,41,52,56,60
+Event218,13,165,166,167,168,169,170,171,181,183
+Event219,4,8,21,27,181,182,183,185,187,189
+Event220,47,152,153,154,155,156,157,158,177,180
+Event221,28,155,156,157,158,159,160,161,162,176
+Event222,25,137,138,139,140,145,147,149,153
+Event223,2,5,8,21,186,187,190,193,196,199
+Event224,2,13,183,186,189,193,197
+Event225,22,69,70,71,72,73,74,75,100
+Event226,14,121,122,123,125,128,131,134,138
+Event227,13,125,126,127,128,129,130,139,142,145
+Event228,48,94,95,96,97,98,99,100,101,110
+Event229,15,16,17,18,19,25,27,29,31,33
+Event230,0,2,4,8,32,37,42,48
+Event231,23,77,78,79,80,81,82,83,110
+Event232,13,104,105,106,107,108,109,110,111,120
+Event233,28,29,30,31,32,33,34,35,36
+Event234,15,185,186,187,188,189,190,191,194,196
+Event235,42,43,44,46,47,48,49,50,51
+Event236,14,114,115,117,119,121,123,125,128,134
+Event237,154,155,156,157,158,159,160,161,177
+Event238,21,133,134,135,136,137,138,139,140,141
+Event239,14,114,115,116,117,118,119,120,121,124
+Event240,23,24,25,26,27,28,29,30,31,32
+Event241,6,8,10,12,14,21,24,27,30,45
+Event242,0,1,2,3,5,14,196,197,198,199
+Event243,19,109,110,111,112,113,114,115,116,118
+Event244,88,89,90,91,92,95,98,101,145
+Event245,3,15,184,187,190,194,198
+Event246,12,13,14,15,16,17,18,19,20,22
+Event247,0,157,158,161,163,178,183,188,195
+Event248,14,190,191,192,193,194,195,196,197,198
+Event249,71,72,75,77,80,83,86,89,92,95
+Event250,1,159,160,162,164,179,184,191,196
+Event251,23,24,25,26,27
+Event252,2,167,169,172,180,185,192,197
+Event253,24,92,93,94,95,96,97,98,99,111
+Event254,74,75,76,77,78,79,80,81,82
+Event255,35,36,40,42,44,46,48,50,52,54
+Event256,0,2,5,9,22,29,192,194,196,198
+Event257,15,132,133,134,135,136,137,138,139,140
+Event258,15,142,143,144,145,146,147,148,149,150
+Event259,16,189,190,191,192,193,194,195,196,197
+Event260,16,105,106,107,108,110,112,114,116,125
+Event261,70,71,72,73,74,75,76,77,79,81
+Event262,46,123,124,125,127,128,132,136,140
+Event263,16,157,158,159,160,161,162,177
+Event264,22,163,164,165,166,167,175,179,198
+Event265,22,23,30,33,36,39,42,53,57,82
+Event266,16,96,97,98,99,100,101,102,106
+Event267,0,9,14,26,195,196,197,198,199
+Event268,66,67,68,70,73,79,82,85
+Event269,10,15,27,181,182,184,187,190,193
+Event270,34,187,188,189,190,191,192,193,194
+Event271,36,131,132,133,134,135,136,137,138,139
+Event272,0,1,2,3,4,17,196,197,198,199
+Event273,65,66,67,69,71,73,75,77,79,81
+Event274,37,175,178,180,182,184,186
+Event275,25,86,87,88,90,92,94,96,98,100
+Event276,7,9,11,13,15,22,25,28,31,47
+Event277,15,21,199
+Event278,0,1,2,3,4,5,6,7,8,17
+Event279,25,169,171,173,174,175,176,177
+Event280,22,122,123,124,125,126,127,128,129,134
+Event281,35,36,37,38,39,40,41,42,43,49
+Event282,0,3,6,9,23,183,188,191,194,197
+Event283,51,53,55,57,59,61,64,69,74,99
+Event284,9,10,11,12,13,14,15,16,17,20
+Event285,17,164,165,166,167,170,173,177
+Event286,61,62,63,64,65,66,67,69,76
+Event287,71,72,73,74,75,76,77,78,79,80
+Event288,14,15,16,25,28,31,34,37,40,43
+Event289,48,49,50,51,52,53,54,55,56,57
+Event290,21,100,101,102,103,104,105,106,107,119
+Event291,17,188,189,190,191,192,193,194,195,196
+Event292,30,101,109,111
+Event293,18,97,98,99,103,105,107,110,114,119
+Event294,18,126,127,128,130,132,140,143,146,150
+Event295,11,12,13,15,23,26,29,32,50
+Event296,46,47,48,49,51,59,61,69,77
+Event297,18,35,36,40,43,65,70,75
+Event298,20,176,177,178,179,180,181,182,183,184
+Event299,19,188,189,190,191,192,193,194,195
+Event300,29,98,99,100,101,102,103,104,106,110
+Event301,4,19,185,188,191,195,199
+Event302,20,125,126,127,128,129,130,131,133,146
+Event303,21,126,129,137
+Event304,21,152,154,155,156,157,158,161
+Event305,12,13,14,15,16,17,18,19,20,26
+Event306,21,151,154
+Event307,22,158,159,160,161,162,163,164,173,185
+Event308,5,6,7,9,11,13,15,17,19,22
+Event309,73,75,76,77,78,79,80,81
+Event310,22,72,86,97
+Event311,48,49,50,51,52,53,54,55,56,57
+Event312,24,147,148,149,150,151,152,153,154,155
+Event313,38,143,144,145,146,147,148,149,150,151
+Event314,27,28,29,30,31,32,33,34,35,37
+Event315,60,61,62,63,64,65,70,77
+Event316,87,88,89,90,91,92,93,94,95,96
+Event317,22,125,126,127,128,129,130,131,132,152
+Event318,25,100,101,102,104,106,108,111,115,120
+Event319,33,34,35,36,37,38,39,40,41,42
+Event320,10,11,12,13,14,16,33,43,49
+Event321,26,150,151,152,156,158,160,162,164,177
+Event322,6,83,180,181,185,187,189,191,193,195
+Event323,0,1,2,3,4,5,6,7,199
+Event324,49,148,149,150,151,152,153,154,155,156
+Event325,41
+Event326,33,161,164,165,166,173,177
+Event327,120,121,122,123,124,137,140,143,146
+Event328,33,158,161,164,167,173,188
+Event329,37,156,157,158,159,160,161,177,180,183
+Event330,38,100,101,102,103,104,105,106,107,119
+Event331,51,52,53,54,55,56,57,58,59
+Event332,38,153,154,155,157,159,161,163,173,178
+Event333,39,100,102,107,110,113,116,119,122,177
+Event334,122,123,124,125,126,127,128,138
+Event335,39,104,105,106,107,108,109,110,111,112
+Event336,37,38,41,44,50,66,71,76
+Event337,40,83,84,86,89,92,95,98,117,138
+Event338,191,193,195,197
+Event339,24,26,28,30,32
+Event340,67,69,74,77,80,83,86,89,92,95
+Event341,41,42,43,44,45,46,48,50,52,55
+Event342,43,111,112,113,114,115,116,117,118,154
+Event343,4,6,7,8,9,10,11,12,40
+Event344,139,140,141,143,144,146,149,152
+Event345,58,59,60,61,62,63,64,78
+Event346,84,85,89,91,93,95,97,99,111
+Event347,97,180,181,182,183,184,185,186,187
+Event348,11,44,178,180,185,188,191,194
+Event349,18,19,20,21,22,23,24,25,26,40
+Event350,78,99,100,101,102,103,104,105,107,111
+Event351,41,99,100,101,102,103,104,105,107,112
+Event352,41,159,160,161,162,173,176,180,199
+Event353,41,129,130,131,132,133,134,135,136
+Event354,48,49,50,52,54,56,58,62,80
+Event355,41,103,104,105,106,107,108,109,110,112
+Event356,80,82,87,90,93,96,99,118,139
+Event357,44,109,110,111,112,113,120,122,125,139
+Event358,72,73,74,75,76,77,78,79,80
+Event359,43,95,96,97,98,100,102,104,107,112
+Event360,43,112,114,115,116,117,139
+Event361,44,135,136,137,138,139,148,150,178
+Event362,44,98,99,100,101,102,103,113
+Event363,0,5,56
+Event364,42,43,46,48,50,52,54,56,58
+Event365,81,171,172,173,174,175,176,178,181,184
+Event366,57,160,161,162,163,164,165,166,178,181
+Event367,58,60,71,74,77,80,83,96
+Event368,44,45,47,49,51,53,55,57,59
+Event369,190,191,193,195,196,197,198
+Event370,129,131,133,135,141,144,147,150,153
+Event371,45,112,126,129,132,135,140
+Event372,45,136,137,138,139,142,145,148,151,155
+Event373,0,1,2,3,4,5,6,7,81,199
+Event374,45,112,113,114,115,116,117,118,119,142
+Event375,59,60,61,62,63,64,65,70,82
+Event376,58,135,136,137,144,146,149,178
+Event377,92,93,94,99,101,103,105,108,113
+Event378,85,86,87,88,89,90,91,92,93,96
+Event379,45,120,121,122,123,124,125,126,130,140
+Event380,59,164,165,166,167,168,169,171,174,178
+Event381,3,46,165,170,173,176,181,186,193,198
+Event382,62,63,64,65,67,70,82
+Event383,22,46,141,142,143,144,146,148,150,152
+Event384,111,112,113,114,115,116,117,118,178
+Event385,47,153,154,155,157,158,159,161,179
+Event386,73,74,76,78,81,84,87,90,93,96
+Event387,47,135,136,137,138,139,140,155,162,185
+Event388,61,62,63,64,65,66,67,68,70,82
+Event389,83,84,85,86,93,96,99,102
+Event390,83,114,115,116,117,118,119,120,121
+Event391,16,17,18,19,20,23,26,29,41
+Event392,52,54,56,58,60,62,67,72,77
+Event393,55,56,57,58,59,60,61,62,83
+Event394,168,169,170,171,172,173,174,175,179
+Event395,83,168,169,170,171,172,173,174,175,186
+Event396,50,53,56,59,68,87,113
+Event397,20,22,23,24,26,28,30,32,84
+Event398,42,43,44,45,46,47,48,49,50,84
+Event399,84,93,94,95,96,97,98,106,108
+
+Event To Room Lookup
+
+Event0,2
+Event1,0,4
+Event2,4,8
+Event3,3,4
+Event4,4,6
+Event5,3,4
+Event6,2
+Event7,4,8
+Event8,2,5
+Event9,4
+Event10,5
+Event11,1,3,4
+Event12,4
+Event13,2,5
+Event14,1,4
+Event15,3,4,6,9
+Event16,1,2,4,5,8,9
+Event17,0
+Event18,3,4,6
+Event19,2
+Event20,3,4
+Event21,2
+Event22,2,5
+Event23,4,6
+Event24,4,6,7
+Event25,1,2,4,5
+Event26,2,5
+Event27,2,5
+Event28,4
+Event29,4
+Event30,3,4
+Event31,3,4
+Event32,2
+Event33,2,5
+Event34,2,5
+Event35,3,4
+Event36,0
+Event37,0
+Event38,4
+Event39,2,5
+Event40,4,9
+Event41,2
+Event42,0
+Event43,3,4
+Event44,2
+Event45,0,4
+Event46,3,4,6
+Event47,0
+Event48,2,5
+Event49,4
+Event50,1,4,7,8
+Event51,1,4
+Event52,9
+Event53,9
+Event54,2
+Event55,1,4
+Event56,0
+Event57,4,6
+Event58,4,9
+Event59,0,4
+Event60,2
+Event61,4,8
+Event62,1,2,4
+Event63,1,3,4,7,8
+Event64,4
+Event65,2,5
+Event66,9
+Event67,4,7
+Event68,4,6
+Event69,4
+Event70,3,4
+Event71,4,6,7
+Event72,4
+Event73,1,4
+Event74,4,6
+Event75,4
+Event76,1,4
+Event77,2,5
+Event78,1,4
+Event79,0,2,5
+Event80,3,4,6
+Event81,2
+Event82,4,6
+Event83,3,4
+Event84,0
+Event85,0,4
+Event86,1,4,7,8
+Event87,4
+Event88,0
+Event89,3,4
+Event90,4,6,8
+Event91,1,4,7,8
+Event92,4
+Event93,1,4
+Event94,1,4,8
+Event95,4,6,7
+Event96,2
+Event97,9
+Event98,1,2,4,5
+Event99,4,7
+Event100,4,8
+Event101,3,4,6,7
+Event102,4,6,7
+Event103,3,4,6
+Event104,4
+Event105,4
+Event106,2,5
+Event107,3,4
+Event108,4,8
+Event109,3,4
+Event110,4,7
+Event111,2,5
+Event112,9
+Event113,3,4
+Event114,1,4
+Event115,4
+Event116,1,2,4
+Event117,4,7
+Event118,4,6,7,9
+Event119,2
+Event120,4,7
+Event121,4
+Event122,2
+Event123,3,4
+Event124,4,8
+Event125,4,7
+Event126,1,2,4
+Event127,4,6
+Event128,3,4,8
+Event129,1,4
+Event130,1,2,4,5
+Event131,0
+Event132,1,4
+Event133,4
+Event134,4,8
+Event135,4
+Event136,1,4
+Event137,4
+Event138,0
+Event139,4,6,7
+Event140,1,4
+Event141,3,4,6,9
+Event142,4
+Event143,4
+Event144,1,4,8
+Event145,3,4
+Event146,4,7
+Event147,2
+Event148,3,4
+Event149,4
+Event150,2
+Event151,4,8
+Event152,4,6
+Event153,4,8
+Event154,3,4,6,8
+Event155,1,4
+Event156,3,4,6
+Event157,0
+Event158,2
+Event159,4,6
+Event160,4,6
+Event161,1,2,4
+Event162,2
+Event163,9
+Event164,4
+Event165,4
+Event166,4,9
+Event167,3,4
+Event168,1,4
+Event169,4
+Event170,2,5
+Event171,3,4,6
+Event172,9
+Event173,1,4
+Event174,2
+Event175,3,4,7
+Event176,4,8
+Event177,2
+Event178,9
+Event179,4,6,7
+Event180,0
+Event181,4,6
+Event182,3,4
+Event183,1,4
+Event184,1,4,7,8
+Event185,4,8
+Event186,0,1,2,3,4,5,6,7,8,9
+Event187,9
+Event188,4
+Event189,2,5
+Event190,0
+Event191,3,4
+Event192,4
+Event193,3,4,6,7
+Event194,3,4,6
+Event195,4,7
+Event196,4,8
+Event197,1,4
+Event198,1,4
+Event199,2,5
+Event200,0
+Event201,0,2,5,9
+Event202,4
+Event203,1,4,7,8
+Event204,1,4,8
+Event205,3,4
+Event206,4,6
+Event207,4,7
+Event208,9
+Event209,3,4
+Event210,4,7
+Event211,9
+Event212,1,4,8
+Event213,3,4,6
+Event214,1,4
+Event215,0,1,2,4,5
+Event216,2,5
+Event217,4,7
+Event218,2
+Event219,4,7
+Event220,4,8
+Event221,1,4
+Event222,3,4,7
+Event223,9
+Event224,1,3,4
+Event225,4
+Event226,3,4,6
+Event227,3,4
+Event228,3,4,9
+Event229,4
+Event230,1,4,7,8
+Event231,1,4
+Event232,3,4,7
+Event233,4,6,7
+Event234,9
+Event235,1,4,7,8
+Event236,1,2,4
+Event237,4,6,7,9
+Event238,1,4
+Event239,9
+Event240,1,4
+Event241,1,4
+Event242,2,5
+Event243,3,4
+Event244,1,4
+Event245,4,8
+Event246,3,4,7
+Event247,0
+Event248,4,6
+Event249,2,5
+Event250,2
+Event251,1,2,4
+Event252,3,4
+Event253,3,4,7
+Event254,9
+Event255,0,9
+Event256,2
+Event257,2,5
+Event258,3,4
+Event259,4
+Event260,2
+Event261,4,8
+Event262,3,4
+Event263,3,4,7
+Event264,4,6,9
+Event265,4,6
+Event266,1,4
+Event267,2,5
+Event268,4
+Event269,1,2,4,5
+Event270,2
+Event271,3,4
+Event272,4,6,7
+Event273,0,9
+Event274,4,9
+Event275,2,5
+Event276,4,8
+Event277,4,7
+Event278,4,8
+Event279,9
+Event280,3,4
+Event281,1,4
+Event282,2
+Event283,2,5
+Event284,4,8
+Event285,2,5
+Event286,4,7
+Event287,4,7
+Event288,4,7
+Event289,1,2,4
+Event290,3,4,7
+Event291,2,5
+Event292,4,8
+Event293,1,2,4
+Event294,0
+Event295,0
+Event296,2
+Event297,4,6,8
+Event298,9
+Event299,2,5
+Event300,9
+Event301,3,4,7
+Event302,4,7
+Event303,3,4,7
+Event304,4,8
+Event305,4,8
+Event306,3,4
+Event307,2
+Event308,1,4
+Event309,2,5
+Event310,1,4
+Event311,2,5
+Event312,4,8
+Event313,3,4,7
+Event314,4,8
+Event315,4,8
+Event316,4,8
+Event317,0,2,5
+Event318,2,5
+Event319,4,8
+Event320,9
+Event321,1,2,4,5
+Event322,4
+Event323,4,8
+Event324,2,5
+Event325,0,1,2,4
+Event326,9
+Event327,2,5
+Event328,1,4
+Event329,9
+Event330,1,4,8
+Event331,0
+Event332,1,4
+Event333,9
+Event334,2,5
+Event335,9
+Event336,1,4,8
+Event337,1,4
+Event338,1,2,4
+Event339,2,5
+Event340,4,9
+Event341,4,6
+Event342,1,4
+Event343,3,4
+Event344,3,4,6,9
+Event345,1,4,8
+Event346,4
+Event347,4,6
+Event348,4,6
+Event349,4,8
+Event350,9
+Event351,1,4
+Event352,4,8
+Event353,2
+Event354,4,8
+Event355,3,4
+Event356,3,4
+Event357,4,8,9
+Event358,4,6,7
+Event359,3,4
+Event360,4,8
+Event361,0
+Event362,0
+Event363,0
+Event364,0
+Event365,4,6,9
+Event366,9
+Event367,3,4
+Event368,9
+Event369,9
+Event370,1,4
+Event371,3,4
+Event372,9
+Event373,4
+Event374,4
+Event375,9
+Event376,9
+Event377,4,9
+Event378,9
+Event379,4,9
+Event380,9
+Event381,1,4
+Event382,0
+Event383,0
+Event384,0
+Event385,4
+Event386,0
+Event387,1,4
+Event388,0
+Event389,0
+Event390,4
+Event391,0
+Event392,0
+Event393,1,4
+Event394,0
+Event395,0
+Event396,0,1,4
+Event397,0
+Event398,1,4
+Event399,4
+
+Room To Event Lookup
+
+Room0,1,17,36,37,42,45,47,56,59,79,84,85,88,131,138,157,180,186,190,200,201,215,247,255,273,294,295,317,325,331,361,362,363,364,382,383,384,386,388,389,391,392,394,395,396,397
+Room1,11,14,16,25,50,51,55,62,63,73,76,78,86,91,93,94,98,114,116,126,129,130,132,136,140,144,155,161,168,173,183,184,186,197,198,203,204,212,214,215,221,224,230,231,235,236,238,240,241,244,251,266,269,281,289,293,308,310,321,325,328,330,332,336,337,338,342,345,351,370,381,387,393,396,398
+Room2,0,6,8,13,16,19,21,22,25,26,27,32,33,34,39,41,44,48,54,60,62,65,77,79,81,96,98,106,111,116,119,122,126,130,147,150,158,161,162,170,174,177,186,189,199,201,215,216,218,236,242,249,250,251,256,257,260,267,269,270,275,282,283,285,289,291,293,296,299,307,309,311,317,318,321,324,325,327,334,338,339,353
+Room3,3,5,11,15,18,20,30,31,35,43,46,63,70,80,83,89,101,103,107,109,113,123,128,141,145,148,154,156,167,171,175,182,186,191,193,194,205,209,213,222,224,226,227,228,232,243,246,252,253,258,262,263,271,280,290,301,303,306,313,343,344,355,356,359,367,371
+Room4,1,2,3,4,5,7,9,11,12,14,15,16,18,20,23,24,25,28,29,30,31,35,38,40,43,45,46,49,50,51,55,57,58,59,61,62,63,64,67,68,69,70,71,72,73,74,75,76,78,80,82,83,85,86,87,89,90,91,92,93,94,95,98,99,100,101,102,103,104,105,107,108,109,110,113,114,115,116,117,118,120,121,123,124,125,126,127,128,129,130,132,133,134,135,136,137,139,140,141,142,143,144,145,146,148,149,151,152,153,154,155,156,159,160,161,164,165,166,167,168,169,171,173,175,176,179,181,182,183,184,185,186,188,191,192,193,194,195,196,197,198,202,203,204,205,206,207,209,210,212,213,214,215,217,219,220,221,222,224,225,226,227,228,229,230,231,232,233,235,236,237,238,240,241,243,244,245,246,248,251,252,253,258,259,261,262,263,264,265,266,268,269,271,272,274,276,277,278,280,281,284,286,287,288,289,290,292,293,297,301,302,303,304,305,306,308,310,312,313,314,315,316,319,321,322,323,325,328,330,332,336,337,338,340,341,342,343,344,345,346,347,348,349,351,352,354,355,356,357,358,359,360,365,367,370,371,373,374,377,379,381,385,387,390,393,396,398,399
+Room5,8,10,13,16,22,25,26,27,33,34,39,48,65,77,79,98,106,111,130,170,186,189,199,201,215,216,242,249,257,267,269,275,283,285,291,299,309,311,317,318,321,324,327,334,339
+Room6,4,15,18,23,24,46,57,68,71,74,80,82,90,95,101,102,103,118,127,139,141,152,154,156,159,160,171,179,181,186,193,194,206,213,226,233,237,248,264,265,272,297,341,344,347,348,358,365
+Room7,24,50,63,67,71,86,91,95,99,101,102,110,117,118,120,125,139,146,175,179,184,186,193,195,203,207,210,217,219,222,230,232,233,235,237,246,253,263,272,277,286,287,288,290,301,302,303,313,358
+Room8,2,7,16,50,61,63,86,90,91,94,100,108,124,128,134,144,151,153,154,176,184,185,186,196,203,204,212,220,230,235,245,261,276,278,284,292,297,304,305,312,314,315,316,319,323,330,336,345,349,352,354,357,360
+Room9,15,16,40,52,53,58,66,97,112,118,141,163,166,172,178,186,187,201,208,211,223,228,234,237,239,254,255,264,273,274,279,298,300,320,326,329,333,335,340,344,350,357,365,366,368,369,372,375,376,377,378,379,380
diff --git a/TestCode.hs b/TestCode.hs
new file mode 100644
--- /dev/null
+++ b/TestCode.hs
@@ -0,0 +1,59 @@
+import CombinatorialOptimisation.TIM
+import FileFormat.TIM
+
+import System.Random
+import Data.List
+
+main :: IO()
+main = do p<-loadTIMFileRaw "../exampleProblems/TT2002/competition01.tim"
+          writeFile "Test.csv" $ rawToCSV p
+          p'<-loadTIMFile "../exampleProblems/TT2002/competition01.tim"   
+          writeFile "Test2.csv" $ viewConstrainedProblem p'
+          --putStrLn $ timeTableDetailsAsCSV p'
+          gen<-newStdGen
+          let p'' = stochasticBasic p' gen
+          putStrLn $ timeTableDetailsAsCSV p''
+          print p''
+
+          userIn<-getLine 
+          let p'''=descheduleEvent (read userIn) p'' 
+          putStrLn $ timeTableDetailsAsCSV p'''
+          print p''
+          print p'''
+
+          -- mapM_ print $ take 2000000 $ randomWalk gen p''
+          -- print $ unscheduledEvents p'
+
+stochasticBasic t g = foldl (\c (a,b,d)->schedule a b d c) t $ zip3 randomTimes randomRooms (unscheduledEvents t)
+  where
+    (g1,g2) = split g
+    randomTimes = randomRs (0,numberOfTimeSlots t -1) g1
+    randomRooms = randomRs (0,numberOfRooms t -1) g2
+
+perterb :: RandomGen g=>Int->g->TimeTable->TimeTable
+perterb i g t = stochasticBasic finalT finalG
+  where
+    baseLimit = length (currentlyScheduledEvents t)-1
+    (finalT,finalG) = descheduleSome i baseLimit g t 
+    descheduleSome 0 _ g' t' = (t',g')
+    descheduleSome n r g' t' = let (v,g'') = randomR (0,r) g'
+                                   k = currentlyScheduledEvents t' !! v
+                               in descheduleSome (n-1) (r-1) g'' (descheduleEvent k t')
+
+randomWalk :: RandomGen g=>g->TimeTable->[TimeTable]
+randomWalk g t = let gs = unfoldr (Just . split) g
+                     as = t : zipWith f as ps
+                     ps = zipWith (perterb 3) gs as
+                 in as
+  where
+    f a b = let aV = ittcObjectiveValue a
+                bV = ittcObjectiveValue b
+            in if aV>bV then a else b
+      
+    
+
+
+
+
+
+
diff --git a/TestTSP.hs b/TestTSP.hs
new file mode 100644
--- /dev/null
+++ b/TestTSP.hs
@@ -0,0 +1,19 @@
+import FileFormat.TSPLIB
+import CombinatorialOptimisation.TSP
+import System.Random
+
+
+main = do g<-newStdGen
+          let prob = makeEuclideanTSPMap ExplicitMatrix (0,100) (0,100) 8 g
+          let b = setRoute [0..7] prob
+          print b
+          print $ kFragments [2,4,7] b
+          print $ exhaustiveFragmentRebuild True b . kFragments [2,4,7] $ b
+
+
+
+{- x <- loadTSPFile TriangularMatrix "fl417.tsp"
+          -- print $ showEdgeWeights x
+          let x' = randomiseRoute (mkStdGen 417) x
+          print $ (\(TSPProblem m _ _ _ _ _)->m) x' -}
+
diff --git a/combinatorial-problems.cabal b/combinatorial-problems.cabal
--- a/combinatorial-problems.cabal
+++ b/combinatorial-problems.cabal
@@ -1,5 +1,5 @@
 Name:              combinatorial-problems
-Version:           0.0.4
+Version:           0.0.5
 Synopsis:          A number of data structures to represent and allow the manipulation of standard combinatorial problems, used as test problems in computer science.
 Description:       In computer science there are a number of standard test problems that are used for testing algorithms, 
                    especially those related to Artificial Intelligence and Operations Research. Online there are a number 
@@ -40,5 +40,7 @@
                    random >= 1.0.0.1,
                    containers >= 0.2.0.1,
                    array >= 0.2.0.0,
-                   parsec >= 3.1.1
+                   parsec >= 3.1.1,
+                   bytestring >= 0.9.1.10,
+                   bytestring-lexing >=0.2.1
   extensions: 
diff --git a/dist/build/CombinatorialOptimisation/SAT.hi b/dist/build/CombinatorialOptimisation/SAT.hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/SAT.hi differ
diff --git a/dist/build/CombinatorialOptimisation/SAT.o b/dist/build/CombinatorialOptimisation/SAT.o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/SAT.o differ
diff --git a/dist/build/CombinatorialOptimisation/SAT.p_hi b/dist/build/CombinatorialOptimisation/SAT.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/SAT.p_hi differ
diff --git a/dist/build/CombinatorialOptimisation/SAT.p_o b/dist/build/CombinatorialOptimisation/SAT.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/SAT.p_o differ
diff --git a/dist/build/CombinatorialOptimisation/TIM.hi b/dist/build/CombinatorialOptimisation/TIM.hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TIM.hi differ
diff --git a/dist/build/CombinatorialOptimisation/TIM.o b/dist/build/CombinatorialOptimisation/TIM.o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TIM.o differ
diff --git a/dist/build/CombinatorialOptimisation/TIM.p_hi b/dist/build/CombinatorialOptimisation/TIM.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TIM.p_hi differ
diff --git a/dist/build/CombinatorialOptimisation/TIM.p_o b/dist/build/CombinatorialOptimisation/TIM.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TIM.p_o differ
diff --git a/dist/build/CombinatorialOptimisation/TSP.hi b/dist/build/CombinatorialOptimisation/TSP.hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP.hi differ
diff --git a/dist/build/CombinatorialOptimisation/TSP.o b/dist/build/CombinatorialOptimisation/TSP.o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP.o differ
diff --git a/dist/build/CombinatorialOptimisation/TSP.p_hi b/dist/build/CombinatorialOptimisation/TSP.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP.p_hi differ
diff --git a/dist/build/CombinatorialOptimisation/TSP.p_o b/dist/build/CombinatorialOptimisation/TSP.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP.p_o differ
diff --git a/dist/build/CombinatorialOptimisation/TSP/FixedPoint.hi b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.hi differ
diff --git a/dist/build/CombinatorialOptimisation/TSP/FixedPoint.o b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.o differ
diff --git a/dist/build/CombinatorialOptimisation/TSP/FixedPoint.p_hi b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.p_hi differ
diff --git a/dist/build/CombinatorialOptimisation/TSP/FixedPoint.p_o b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/CombinatorialOptimisation/TSP/FixedPoint.p_o differ
diff --git a/dist/build/FileFormat/SATLIB.hi b/dist/build/FileFormat/SATLIB.hi
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/SATLIB.hi differ
diff --git a/dist/build/FileFormat/SATLIB.o b/dist/build/FileFormat/SATLIB.o
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/SATLIB.o differ
diff --git a/dist/build/FileFormat/SATLIB.p_hi b/dist/build/FileFormat/SATLIB.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/SATLIB.p_hi differ
diff --git a/dist/build/FileFormat/SATLIB.p_o b/dist/build/FileFormat/SATLIB.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/SATLIB.p_o differ
diff --git a/dist/build/FileFormat/TIM.hi b/dist/build/FileFormat/TIM.hi
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TIM.hi differ
diff --git a/dist/build/FileFormat/TIM.o b/dist/build/FileFormat/TIM.o
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TIM.o differ
diff --git a/dist/build/FileFormat/TIM.p_hi b/dist/build/FileFormat/TIM.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TIM.p_hi differ
diff --git a/dist/build/FileFormat/TIM.p_o b/dist/build/FileFormat/TIM.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TIM.p_o differ
diff --git a/dist/build/FileFormat/TSPLIB.hi b/dist/build/FileFormat/TSPLIB.hi
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TSPLIB.hi differ
diff --git a/dist/build/FileFormat/TSPLIB.o b/dist/build/FileFormat/TSPLIB.o
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TSPLIB.o differ
diff --git a/dist/build/FileFormat/TSPLIB.p_hi b/dist/build/FileFormat/TSPLIB.p_hi
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TSPLIB.p_hi differ
diff --git a/dist/build/FileFormat/TSPLIB.p_o b/dist/build/FileFormat/TSPLIB.p_o
new file mode 100644
Binary files /dev/null and b/dist/build/FileFormat/TSPLIB.p_o differ
diff --git a/dist/build/HScombinatorial-problems-0.0.5.o b/dist/build/HScombinatorial-problems-0.0.5.o
new file mode 100644
Binary files /dev/null and b/dist/build/HScombinatorial-problems-0.0.5.o differ
diff --git a/dist/build/autogen/Paths_combinatorial_problems.hs b/dist/build/autogen/Paths_combinatorial_problems.hs
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/Paths_combinatorial_problems.hs
@@ -0,0 +1,32 @@
+module Paths_combinatorial_problems (
+    version,
+    getBinDir, getLibDir, getDataDir, getLibexecDir,
+    getDataFileName
+  ) where
+
+import qualified Control.Exception as Exception
+import Data.Version (Version(..))
+import System.Environment (getEnv)
+catchIO :: IO a -> (Exception.IOException -> IO a) -> IO a
+catchIO = Exception.catch
+
+
+version :: Version
+version = Version {versionBranch = [0,0,5], versionTags = []}
+bindir, libdir, datadir, libexecdir :: FilePath
+
+bindir     = "/home/richard/.cabal/bin"
+libdir     = "/home/richard/.cabal/lib/combinatorial-problems-0.0.5/ghc-7.4.2"
+datadir    = "/home/richard/.cabal/share/combinatorial-problems-0.0.5"
+libexecdir = "/home/richard/.cabal/libexec"
+
+getBinDir, getLibDir, getDataDir, getLibexecDir :: IO FilePath
+getBinDir = catchIO (getEnv "combinatorial_problems_bindir") (\_ -> return bindir)
+getLibDir = catchIO (getEnv "combinatorial_problems_libdir") (\_ -> return libdir)
+getDataDir = catchIO (getEnv "combinatorial_problems_datadir") (\_ -> return datadir)
+getLibexecDir = catchIO (getEnv "combinatorial_problems_libexecdir") (\_ -> return libexecdir)
+
+getDataFileName :: FilePath -> IO FilePath
+getDataFileName name = do
+  dir <- getDataDir
+  return (dir ++ "/" ++ name)
diff --git a/dist/build/autogen/cabal_macros.h b/dist/build/autogen/cabal_macros.h
new file mode 100644
--- /dev/null
+++ b/dist/build/autogen/cabal_macros.h
@@ -0,0 +1,51 @@
+/* DO NOT EDIT: This file is automatically generated by Cabal */
+
+/* package array-0.4.0.0 */
+#define VERSION_array "0.4.0.0"
+#define MIN_VERSION_array(major1,major2,minor) (\
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  4 || \
+  (major1) == 0 && (major2) == 4 && (minor) <= 0)
+
+/* package base-4.5.1.0 */
+#define VERSION_base "4.5.1.0"
+#define MIN_VERSION_base(major1,major2,minor) (\
+  (major1) <  4 || \
+  (major1) == 4 && (major2) <  5 || \
+  (major1) == 4 && (major2) == 5 && (minor) <= 1)
+
+/* package bytestring-0.9.2.1 */
+#define VERSION_bytestring "0.9.2.1"
+#define MIN_VERSION_bytestring(major1,major2,minor) (\
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  9 || \
+  (major1) == 0 && (major2) == 9 && (minor) <= 2)
+
+/* package bytestring-lexing-0.4.0 */
+#define VERSION_bytestring_lexing "0.4.0"
+#define MIN_VERSION_bytestring_lexing(major1,major2,minor) (\
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  4 || \
+  (major1) == 0 && (major2) == 4 && (minor) <= 0)
+
+/* package containers-0.5.2.1 */
+#define VERSION_containers "0.5.2.1"
+#define MIN_VERSION_containers(major1,major2,minor) (\
+  (major1) <  0 || \
+  (major1) == 0 && (major2) <  5 || \
+  (major1) == 0 && (major2) == 5 && (minor) <= 2)
+
+/* package parsec-3.1.3 */
+#define VERSION_parsec "3.1.3"
+#define MIN_VERSION_parsec(major1,major2,minor) (\
+  (major1) <  3 || \
+  (major1) == 3 && (major2) <  1 || \
+  (major1) == 3 && (major2) == 1 && (minor) <= 3)
+
+/* package random-1.0.1.1 */
+#define VERSION_random "1.0.1.1"
+#define MIN_VERSION_random(major1,major2,minor) (\
+  (major1) <  1 || \
+  (major1) == 1 && (major2) <  0 || \
+  (major1) == 1 && (major2) == 0 && (minor) <= 1)
+
diff --git a/dist/build/libHScombinatorial-problems-0.0.5.a b/dist/build/libHScombinatorial-problems-0.0.5.a
new file mode 100644
Binary files /dev/null and b/dist/build/libHScombinatorial-problems-0.0.5.a differ
diff --git a/dist/package.conf.inplace b/dist/package.conf.inplace
new file mode 100644
--- /dev/null
+++ b/dist/package.conf.inplace
@@ -0,0 +1,2 @@
+[InstalledPackageInfo {installedPackageId = InstalledPackageId "combinatorial-problems-0.0.5-inplace", sourcePackageId = PackageIdentifier {pkgName = PackageName "combinatorial-problems", pkgVersion = Version {versionBranch = [0,0,5], versionTags = []}}, license = GPL Nothing, copyright = "Copyright (c) 2011 Richard Senington", maintainer = "sc06r2s@leeds.ac.uk", author = "Richard Senington", stability = "experimental", homepage = "http://www.comp.leeds.ac.uk/sc06r2s/Projects/HaskellCombinatorialProblems", pkgUrl = "", synopsis = "A number of data structures to represent and allow the manipulation of standard combinatorial problems, used as test problems in computer science.", description = "In computer science there are a number of standard test problems that are used for testing algorithms,\nespecially those related to Artificial Intelligence and Operations Research. Online there are a number\nof repositories for collections of known interesting problems, for example the TSPLIB at\n<http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/> and the SATLIB at\n<http://www.satlib.org/>.\n\nThis library seeks to provide implementations of data structures to store these problems, along with\nfunctions for manipulating the problems and routines to load problem files from various sources.\n\nAt present it supports TSP\\/TSPLIB, SAT\\/SATLIB and TIM (format used by the International Timetabling Competition,\nwhich has been run twice at current date), however it is hoped that the loading routines\ncan be expanded and the range of problems expanded to cover problems like scheduling and more general timetabling.\nThe internal data structures make heavy use of the @Data.Map@ library and @Data.Array@. It is not currently\nusing unboxed values. The library does not use the @bytestring@ library for loading and saving data either,\nwhich will probably need to be changed later.", category = "Optimisation", exposed = True, exposedModules = ["FileFormat.SATLIB","FileFormat.TSPLIB","FileFormat.TIM","CombinatorialOptimisation.SAT","CombinatorialOptimisation.TSP","CombinatorialOptimisation.TSP.FixedPoint","CombinatorialOptimisation.TIM"], hiddenModules = [], trusted = False, importDirs = ["/home/richard/Documents/CombinatorialProblems/combinatorial-problems-0.0.5/dist/build"], libraryDirs = ["/home/richard/Documents/CombinatorialProblems/combinatorial-problems-0.0.5/dist/build"], hsLibraries = ["HScombinatorial-problems-0.0.5"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",InstalledPackageId "bytestring-lexing-0.4.0-e551a3f528aad3cfa92e296841654d5c",InstalledPackageId "containers-0.5.2.1-cd7720af9b18babce062e2c9d08db570",InstalledPackageId "parsec-3.1.3-eb499eea44c5d4917d875b6f94c7b0ff",InstalledPackageId "random-1.0.1.1-5bcf17e975ad42d3244dd9f6f76c56ce"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/Documents/CombinatorialProblems/combinatorial-problems-0.0.5/dist/doc/html/combinatorial-problems/combinatorial-problems.haddock"], haddockHTMLs = ["/home/richard/Documents/CombinatorialProblems/combinatorial-problems-0.0.5/dist/doc/html/combinatorial-problems"]}
+]
diff --git a/dist/setup-config b/dist/setup-config
new file mode 100644
--- /dev/null
+++ b/dist/setup-config
@@ -0,0 +1,2 @@
+Saved package config for combinatorial-problems-0.0.5 written by Cabal-1.14.0 using ghc-7.4
+LocalBuildInfo {configFlags = ConfigFlags {configPrograms = [], configProgramPaths = [], configProgramArgs = [], configHcFlavor = Flag GHC, configHcPath = NoFlag, configHcPkg = NoFlag, configVanillaLib = Flag True, configProfLib = Flag False, configSharedLib = Flag False, configDynExe = Flag False, configProfExe = Flag False, configConfigureArgs = [], configOptimization = Flag NormalOptimisation, configProgPrefix = Flag "", configProgSuffix = Flag "", configInstallDirs = InstallDirs {prefix = Flag "/home/richard/.cabal", bindir = NoFlag, libdir = NoFlag, libsubdir = NoFlag, dynlibdir = NoFlag, libexecdir = NoFlag, progdir = NoFlag, includedir = NoFlag, datadir = NoFlag, datasubdir = NoFlag, docdir = NoFlag, mandir = NoFlag, htmldir = NoFlag, haddockdir = NoFlag}, configScratchDir = NoFlag, configExtraLibDirs = [], configExtraIncludeDirs = [], configDistPref = Flag "dist", configVerbosity = Flag Normal, configUserInstall = Flag True, configPackageDB = NoFlag, configGHCiLib = Flag True, configSplitObjs = Flag False, configStripExes = Flag True, configConstraints = [Dependency (PackageName "random") (ThisVersion (Version {versionBranch = [1,0,1,1], versionTags = []})),Dependency (PackageName "parsec") (ThisVersion (Version {versionBranch = [3,1,3], versionTags = []})),Dependency (PackageName "containers") (ThisVersion (Version {versionBranch = [0,5,2,1], versionTags = []})),Dependency (PackageName "bytestring-lexing") (ThisVersion (Version {versionBranch = [0,4,0], versionTags = []})),Dependency (PackageName "bytestring") (ThisVersion (Version {versionBranch = [0,9,2,1], versionTags = []})),Dependency (PackageName "base") (ThisVersion (Version {versionBranch = [4,5,1,0], versionTags = []})),Dependency (PackageName "array") (ThisVersion (Version {versionBranch = [0,4,0,0], versionTags = []}))], configConfigurationsFlags = [], configTests = Flag False, configBenchmarks = Flag False, configLibCoverage = Flag False}, extraConfigArgs = [], installDirTemplates = InstallDirs {prefix = "/home/richard/.cabal", bindir = "$prefix/bin", libdir = "$prefix/lib", libsubdir = "$pkgid/$compiler", dynlibdir = "$libdir", libexecdir = "$prefix/libexec", progdir = "$libdir/hugs/programs", includedir = "$libdir/$libsubdir/include", datadir = "$prefix/share", datasubdir = "$pkgid", docdir = "$datadir/doc/$pkgid", mandir = "$datadir/man", htmldir = "$docdir/html", haddockdir = "$htmldir"}, compiler = Compiler {compilerId = CompilerId GHC (Version {versionBranch = [7,4,2], versionTags = []}), compilerLanguages = [(Haskell98,"-XHaskell98"),(Haskell2010,"-XHaskell2010")], compilerExtensions = [(UnknownExtension "Haskell98","-XHaskell98"),(UnknownExtension "Haskell2010","-XHaskell2010"),(UnknownExtension "Unsafe","-XUnsafe"),(EnableExtension Trustworthy,"-XTrustworthy"),(EnableExtension Safe,"-XSafe"),(EnableExtension CPP,"-XCPP"),(DisableExtension CPP,"-XNoCPP"),(EnableExtension PostfixOperators,"-XPostfixOperators"),(DisableExtension PostfixOperators,"-XNoPostfixOperators"),(EnableExtension TupleSections,"-XTupleSections"),(DisableExtension TupleSections,"-XNoTupleSections"),(EnableExtension PatternGuards,"-XPatternGuards"),(DisableExtension PatternGuards,"-XNoPatternGuards"),(EnableExtension UnicodeSyntax,"-XUnicodeSyntax"),(DisableExtension UnicodeSyntax,"-XNoUnicodeSyntax"),(EnableExtension MagicHash,"-XMagicHash"),(DisableExtension MagicHash,"-XNoMagicHash"),(EnableExtension PolymorphicComponents,"-XPolymorphicComponents"),(DisableExtension PolymorphicComponents,"-XNoPolymorphicComponents"),(EnableExtension ExistentialQuantification,"-XExistentialQuantification"),(DisableExtension ExistentialQuantification,"-XNoExistentialQuantification"),(EnableExtension KindSignatures,"-XKindSignatures"),(DisableExtension KindSignatures,"-XNoKindSignatures"),(EnableExtension EmptyDataDecls,"-XEmptyDataDecls"),(DisableExtension EmptyDataDecls,"-XNoEmptyDataDecls"),(EnableExtension ParallelListComp,"-XParallelListComp"),(DisableExtension ParallelListComp,"-XNoParallelListComp"),(EnableExtension TransformListComp,"-XTransformListComp"),(DisableExtension TransformListComp,"-XNoTransformListComp"),(UnknownExtension "MonadComprehensions","-XMonadComprehensions"),(UnknownExtension "NoMonadComprehensions","-XNoMonadComprehensions"),(EnableExtension ForeignFunctionInterface,"-XForeignFunctionInterface"),(DisableExtension ForeignFunctionInterface,"-XNoForeignFunctionInterface"),(EnableExtension UnliftedFFITypes,"-XUnliftedFFITypes"),(DisableExtension UnliftedFFITypes,"-XNoUnliftedFFITypes"),(UnknownExtension "InterruptibleFFI","-XInterruptibleFFI"),(UnknownExtension "NoInterruptibleFFI","-XNoInterruptibleFFI"),(UnknownExtension "CApiFFI","-XCApiFFI"),(UnknownExtension "NoCApiFFI","-XNoCApiFFI"),(EnableExtension GHCForeignImportPrim,"-XGHCForeignImportPrim"),(DisableExtension GHCForeignImportPrim,"-XNoGHCForeignImportPrim"),(EnableExtension LiberalTypeSynonyms,"-XLiberalTypeSynonyms"),(DisableExtension LiberalTypeSynonyms,"-XNoLiberalTypeSynonyms"),(EnableExtension Rank2Types,"-XRank2Types"),(DisableExtension Rank2Types,"-XNoRank2Types"),(EnableExtension RankNTypes,"-XRankNTypes"),(DisableExtension RankNTypes,"-XNoRankNTypes"),(EnableExtension ImpredicativeTypes,"-XImpredicativeTypes"),(DisableExtension ImpredicativeTypes,"-XNoImpredicativeTypes"),(EnableExtension TypeOperators,"-XTypeOperators"),(DisableExtension TypeOperators,"-XNoTypeOperators"),(EnableExtension RecursiveDo,"-XRecursiveDo"),(DisableExtension RecursiveDo,"-XNoRecursiveDo"),(EnableExtension DoRec,"-XDoRec"),(DisableExtension DoRec,"-XNoDoRec"),(EnableExtension Arrows,"-XArrows"),(DisableExtension Arrows,"-XNoArrows"),(UnknownExtension "ParallelArrays","-XParallelArrays"),(UnknownExtension "NoParallelArrays","-XNoParallelArrays"),(EnableExtension TemplateHaskell,"-XTemplateHaskell"),(DisableExtension TemplateHaskell,"-XNoTemplateHaskell"),(EnableExtension QuasiQuotes,"-XQuasiQuotes"),(DisableExtension QuasiQuotes,"-XNoQuasiQuotes"),(EnableExtension ImplicitPrelude,"-XImplicitPrelude"),(DisableExtension ImplicitPrelude,"-XNoImplicitPrelude"),(EnableExtension RecordWildCards,"-XRecordWildCards"),(DisableExtension RecordWildCards,"-XNoRecordWildCards"),(EnableExtension NamedFieldPuns,"-XNamedFieldPuns"),(DisableExtension NamedFieldPuns,"-XNoNamedFieldPuns"),(EnableExtension RecordPuns,"-XRecordPuns"),(DisableExtension RecordPuns,"-XNoRecordPuns"),(EnableExtension DisambiguateRecordFields,"-XDisambiguateRecordFields"),(DisableExtension DisambiguateRecordFields,"-XNoDisambiguateRecordFields"),(EnableExtension OverloadedStrings,"-XOverloadedStrings"),(DisableExtension OverloadedStrings,"-XNoOverloadedStrings"),(EnableExtension GADTs,"-XGADTs"),(DisableExtension GADTs,"-XNoGADTs"),(EnableExtension GADTSyntax,"-XGADTSyntax"),(DisableExtension GADTSyntax,"-XNoGADTSyntax"),(EnableExtension ViewPatterns,"-XViewPatterns"),(DisableExtension ViewPatterns,"-XNoViewPatterns"),(EnableExtension TypeFamilies,"-XTypeFamilies"),(DisableExtension TypeFamilies,"-XNoTypeFamilies"),(EnableExtension BangPatterns,"-XBangPatterns"),(DisableExtension BangPatterns,"-XNoBangPatterns"),(EnableExtension MonomorphismRestriction,"-XMonomorphismRestriction"),(DisableExtension MonomorphismRestriction,"-XNoMonomorphismRestriction"),(EnableExtension NPlusKPatterns,"-XNPlusKPatterns"),(DisableExtension NPlusKPatterns,"-XNoNPlusKPatterns"),(EnableExtension DoAndIfThenElse,"-XDoAndIfThenElse"),(DisableExtension DoAndIfThenElse,"-XNoDoAndIfThenElse"),(EnableExtension RebindableSyntax,"-XRebindableSyntax"),(DisableExtension RebindableSyntax,"-XNoRebindableSyntax"),(EnableExtension ConstraintKinds,"-XConstraintKinds"),(DisableExtension ConstraintKinds,"-XNoConstraintKinds"),(UnknownExtension "PolyKinds","-XPolyKinds"),(UnknownExtension "NoPolyKinds","-XNoPolyKinds"),(UnknownExtension "DataKinds","-XDataKinds"),(UnknownExtension "NoDataKinds","-XNoDataKinds"),(EnableExtension MonoPatBinds,"-XMonoPatBinds"),(DisableExtension MonoPatBinds,"-XNoMonoPatBinds"),(EnableExtension ExplicitForAll,"-XExplicitForAll"),(DisableExtension ExplicitForAll,"-XNoExplicitForAll"),(UnknownExtension "AlternativeLayoutRule","-XAlternativeLayoutRule"),(UnknownExtension "NoAlternativeLayoutRule","-XNoAlternativeLayoutRule"),(UnknownExtension "AlternativeLayoutRuleTransitional","-XAlternativeLayoutRuleTransitional"),(UnknownExtension "NoAlternativeLayoutRuleTransitional","-XNoAlternativeLayoutRuleTransitional"),(EnableExtension DatatypeContexts,"-XDatatypeContexts"),(DisableExtension DatatypeContexts,"-XNoDatatypeContexts"),(EnableExtension NondecreasingIndentation,"-XNondecreasingIndentation"),(DisableExtension NondecreasingIndentation,"-XNoNondecreasingIndentation"),(UnknownExtension "RelaxedLayout","-XRelaxedLayout"),(UnknownExtension "NoRelaxedLayout","-XNoRelaxedLayout"),(UnknownExtension "TraditionalRecordSyntax","-XTraditionalRecordSyntax"),(UnknownExtension "NoTraditionalRecordSyntax","-XNoTraditionalRecordSyntax"),(EnableExtension MonoLocalBinds,"-XMonoLocalBinds"),(DisableExtension MonoLocalBinds,"-XNoMonoLocalBinds"),(EnableExtension RelaxedPolyRec,"-XRelaxedPolyRec"),(DisableExtension RelaxedPolyRec,"-XNoRelaxedPolyRec"),(EnableExtension ExtendedDefaultRules,"-XExtendedDefaultRules"),(DisableExtension ExtendedDefaultRules,"-XNoExtendedDefaultRules"),(EnableExtension ImplicitParams,"-XImplicitParams"),(DisableExtension ImplicitParams,"-XNoImplicitParams"),(EnableExtension ScopedTypeVariables,"-XScopedTypeVariables"),(DisableExtension ScopedTypeVariables,"-XNoScopedTypeVariables"),(EnableExtension PatternSignatures,"-XPatternSignatures"),(DisableExtension PatternSignatures,"-XNoPatternSignatures"),(EnableExtension UnboxedTuples,"-XUnboxedTuples"),(DisableExtension UnboxedTuples,"-XNoUnboxedTuples"),(EnableExtension StandaloneDeriving,"-XStandaloneDeriving"),(DisableExtension StandaloneDeriving,"-XNoStandaloneDeriving"),(EnableExtension DeriveDataTypeable,"-XDeriveDataTypeable"),(DisableExtension DeriveDataTypeable,"-XNoDeriveDataTypeable"),(EnableExtension DeriveFunctor,"-XDeriveFunctor"),(DisableExtension DeriveFunctor,"-XNoDeriveFunctor"),(EnableExtension DeriveTraversable,"-XDeriveTraversable"),(DisableExtension DeriveTraversable,"-XNoDeriveTraversable"),(EnableExtension DeriveFoldable,"-XDeriveFoldable"),(DisableExtension DeriveFoldable,"-XNoDeriveFoldable"),(UnknownExtension "DeriveGeneric","-XDeriveGeneric"),(UnknownExtension "NoDeriveGeneric","-XNoDeriveGeneric"),(UnknownExtension "DefaultSignatures","-XDefaultSignatures"),(UnknownExtension "NoDefaultSignatures","-XNoDefaultSignatures"),(EnableExtension TypeSynonymInstances,"-XTypeSynonymInstances"),(DisableExtension TypeSynonymInstances,"-XNoTypeSynonymInstances"),(EnableExtension FlexibleContexts,"-XFlexibleContexts"),(DisableExtension FlexibleContexts,"-XNoFlexibleContexts"),(EnableExtension FlexibleInstances,"-XFlexibleInstances"),(DisableExtension FlexibleInstances,"-XNoFlexibleInstances"),(EnableExtension ConstrainedClassMethods,"-XConstrainedClassMethods"),(DisableExtension ConstrainedClassMethods,"-XNoConstrainedClassMethods"),(EnableExtension MultiParamTypeClasses,"-XMultiParamTypeClasses"),(DisableExtension MultiParamTypeClasses,"-XNoMultiParamTypeClasses"),(EnableExtension FunctionalDependencies,"-XFunctionalDependencies"),(DisableExtension FunctionalDependencies,"-XNoFunctionalDependencies"),(EnableExtension GeneralizedNewtypeDeriving,"-XGeneralizedNewtypeDeriving"),(DisableExtension GeneralizedNewtypeDeriving,"-XNoGeneralizedNewtypeDeriving"),(EnableExtension OverlappingInstances,"-XOverlappingInstances"),(DisableExtension OverlappingInstances,"-XNoOverlappingInstances"),(EnableExtension UndecidableInstances,"-XUndecidableInstances"),(DisableExtension UndecidableInstances,"-XNoUndecidableInstances"),(EnableExtension IncoherentInstances,"-XIncoherentInstances"),(DisableExtension IncoherentInstances,"-XNoIncoherentInstances"),(EnableExtension PackageImports,"-XPackageImports"),(DisableExtension PackageImports,"-XNoPackageImports")]}, buildDir = "dist/build", scratchDir = "dist/scratch", libraryConfig = Just (ComponentLocalBuildInfo {componentPackageDeps = [(InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}),(InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,5,1,0], versionTags = []}}),(InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",PackageIdentifier {pkgName = PackageName "bytestring", pkgVersion = Version {versionBranch = [0,9,2,1], versionTags = []}}),(InstalledPackageId "bytestring-lexing-0.4.0-e551a3f528aad3cfa92e296841654d5c",PackageIdentifier {pkgName = PackageName "bytestring-lexing", pkgVersion = Version {versionBranch = [0,4,0], versionTags = []}}),(InstalledPackageId "containers-0.5.2.1-cd7720af9b18babce062e2c9d08db570",PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,5,2,1], versionTags = []}}),(InstalledPackageId "parsec-3.1.3-eb499eea44c5d4917d875b6f94c7b0ff",PackageIdentifier {pkgName = PackageName "parsec", pkgVersion = Version {versionBranch = [3,1,3], versionTags = []}}),(InstalledPackageId "random-1.0.1.1-5bcf17e975ad42d3244dd9f6f76c56ce",PackageIdentifier {pkgName = PackageName "random", pkgVersion = Version {versionBranch = [1,0,1,1], versionTags = []}})]}), executableConfigs = [], compBuildOrder = [CLibName], testSuiteConfigs = [], benchmarkConfigs = [], installedPkgs = PackageIndex (fromList [(InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageInfo {installedPackageId = InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61", sourcePackageId = PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Mutable and immutable arrays", description = "This package defines the classes @IArray@ of immutable arrays and\n@MArray@ of arrays mutable within appropriate monads, as well as\nsome instances of these classes.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Array","Base"],ModuleName ["Data","Array","IArray"],ModuleName ["Data","Array","IO"],ModuleName ["Data","Array","IO","Safe"],ModuleName ["Data","Array","IO","Internals"],ModuleName ["Data","Array","MArray"],ModuleName ["Data","Array","MArray","Safe"],ModuleName ["Data","Array","ST"],ModuleName ["Data","Array","ST","Safe"],ModuleName ["Data","Array","Storable"],ModuleName ["Data","Array","Storable","Safe"],ModuleName ["Data","Array","Storable","Internals"],ModuleName ["Data","Array","Unboxed"],ModuleName ["Data","Array","Unsafe"],ModuleName ["Data","Array"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/array-0.4.0.0"], libraryDirs = ["/usr/lib/ghc/array-0.4.0.0"], hsLibraries = ["HSarray-0.4.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/array-0.4.0.0/array.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/array-0.4.0.0"]}),(InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,5,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Basic libraries", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Fingerprint"],ModuleName ["GHC","Fingerprint","Type"],ModuleName ["GHC","Float"],ModuleName ["GHC","Float","ConversionUtils"],ModuleName ["GHC","Float","RealFracMethods"],ModuleName ["GHC","Foreign"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Encoding","Failure"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","IORef"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","MVar"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","Stack"],ModuleName ["GHC","Stats"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["GHC","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Safe"],ModuleName ["Control","Monad","ST","Unsafe"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Lazy","Safe"],ModuleName ["Control","Monad","ST","Lazy","Unsafe"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Control","Monad","Zip"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Typeable","Internal"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","ForeignPtr","Safe"],ModuleName ["Foreign","ForeignPtr","Unsafe"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Safe"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Marshal","Unsafe"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","Safe"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["GHC","Event","Array"],ModuleName ["GHC","Event","Clock"],ModuleName ["GHC","Event","Control"],ModuleName ["GHC","Event","EPoll"],ModuleName ["GHC","Event","IntMap"],ModuleName ["GHC","Event","Internal"],ModuleName ["GHC","Event","KQueue"],ModuleName ["GHC","Event","Manager"],ModuleName ["GHC","Event","PSQ"],ModuleName ["GHC","Event","Poll"],ModuleName ["GHC","Event","Thread"],ModuleName ["GHC","Event","Unique"],ModuleName ["Control","Monad","ST","Imp"],ModuleName ["Control","Monad","ST","Lazy","Imp"],ModuleName ["Foreign","ForeignPtr","Imp"]], trusted = False, importDirs = ["/usr/lib/ghc/base-4.5.1.0"], libraryDirs = ["/usr/lib/ghc/base-4.5.1.0"], hsLibraries = ["HSbase-4.5.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/base-4.5.1.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9",InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/base-4.5.1.0/base.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/base-4.5.1.0"]}),(InstalledPackageId "builtin_rts",InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], trusted = False, importDirs = [], libraryDirs = ["/usr/lib/ghc"], hsLibraries = ["HSrts"], extraLibraries = ["ffi","m","rt","dl"], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/include"], includes = ["Stg.h"], depends = [], hugsOptions = [], ccOptions = [], ldOptions = ["-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_flushStdHandles_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}),(InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",InstalledPackageInfo {installedPackageId = InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8", sourcePackageId = PackageIdentifier {pkgName = PackageName "bytestring", pkgVersion = Version {versionBranch = [0,9,2,1], versionTags = []}}, license = BSD3, copyright = "Copyright (c) Don Stewart   2005-2009,\n(c) Duncan Coutts 2006-2009,\n(c) David Roundy  2003-2005.", maintainer = "dons00@gmail.com, duncan@community.haskell.org", author = "Don Stewart, Duncan Coutts", stability = "", homepage = "http://www.cse.unsw.edu.au/~dons/fps.html", pkgUrl = "", synopsis = "Fast, packed, strict and lazy byte arrays with a list interface", description = "A time and space-efficient implementation of byte vectors using\npacked Word8 arrays, suitable for high performance use, both in terms\nof large data quantities, or high speed requirements. Byte vectors\nare encoded as strict 'Word8' arrays of bytes, and lazy lists of\nstrict chunks, held in a 'ForeignPtr', and can be passed between C\nand Haskell with little effort.\n\nTest coverage data for this library is available at:\n<http://code.haskell.org/~dons/tests/bytestring/hpc_index.html>", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","ByteString"],ModuleName ["Data","ByteString","Char8"],ModuleName ["Data","ByteString","Unsafe"],ModuleName ["Data","ByteString","Internal"],ModuleName ["Data","ByteString","Lazy"],ModuleName ["Data","ByteString","Lazy","Char8"],ModuleName ["Data","ByteString","Lazy","Internal"],ModuleName ["Data","ByteString","Fusion"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/bytestring-0.9.2.1"], libraryDirs = ["/usr/lib/ghc/bytestring-0.9.2.1"], hsLibraries = ["HSbytestring-0.9.2.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/bytestring-0.9.2.1/include"], includes = ["fpstring.h"], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/bytestring-0.9.2.1/bytestring.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/bytestring-0.9.2.1"]}),(InstalledPackageId "bytestring-lexing-0.4.0-e551a3f528aad3cfa92e296841654d5c",InstalledPackageInfo {installedPackageId = InstalledPackageId "bytestring-lexing-0.4.0-e551a3f528aad3cfa92e296841654d5c", sourcePackageId = PackageIdentifier {pkgName = PackageName "bytestring-lexing", pkgVersion = Version {versionBranch = [0,4,0], versionTags = []}}, license = BSD3, copyright = "Copyright (c) 2012 wren ng thornton, 2008--2011 Don Stewart", maintainer = "wren@community.haskell.org", author = "wren ng thornton, Don Stewart", stability = "provisional", homepage = "http://code.haskell.org/~wren/", pkgUrl = "", synopsis = "Parse and produce literals efficiently from strict or lazy bytestrings.", description = "Parse and produce literals efficiently from strict or lazy bytestrings.\n\nSome benchmarks for this package can be found at: <http://community.haskell.org/~wren/bytestring-lexing/test/bench/html>", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","ByteString","Lex","Integral"],ModuleName ["Data","ByteString","Lex","Double"],ModuleName ["Data","ByteString","Lex","Lazy","Double"]], hiddenModules = [ModuleName ["Data","ByteString","Lex","Internal"]], trusted = False, importDirs = ["/home/richard/.cabal/lib/bytestring-lexing-0.4.0/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/bytestring-lexing-0.4.0/ghc-7.4.2"], hsLibraries = ["HSbytestring-lexing-0.4.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/bytestring-lexing-0.4.0/html/bytestring-lexing.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/bytestring-lexing-0.4.0/html"]}),(InstalledPackageId "containers-0.5.2.1-cd7720af9b18babce062e2c9d08db570",InstalledPackageInfo {installedPackageId = InstalledPackageId "containers-0.5.2.1-cd7720af9b18babce062e2c9d08db570", sourcePackageId = PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,5,2,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "fox@ucw.cz", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Assorted concrete container types", description = "This package contains efficient general-purpose implementations\nof various basic immutable container types.  The declared cost of\neach operation is either worst-case or amortized, but remains\nvalid even if structures are shared.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Graph"],ModuleName ["Data","Sequence"],ModuleName ["Data","Tree"],ModuleName ["Data","IntMap"],ModuleName ["Data","IntMap","Lazy"],ModuleName ["Data","IntMap","Strict"],ModuleName ["Data","IntSet"],ModuleName ["Data","Map"],ModuleName ["Data","Map","Lazy"],ModuleName ["Data","Map","Strict"],ModuleName ["Data","Set"]], hiddenModules = [ModuleName ["Data","BitUtil"],ModuleName ["Data","IntMap","Base"],ModuleName ["Data","IntSet","Base"],ModuleName ["Data","Map","Base"],ModuleName ["Data","Set","Base"],ModuleName ["Data","StrictPair"]], trusted = False, importDirs = ["/home/richard/.cabal/lib/containers-0.5.2.1/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/containers-0.5.2.1/ghc-7.4.2"], hsLibraries = ["HScontainers-0.5.2.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/containers-0.5.2.1/html/containers.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/containers-0.5.2.1/html"]}),(InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageInfo {installedPackageId = InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed", sourcePackageId = PackageIdentifier {pkgName = PackageName "deepseq", pkgVersion = Version {versionBranch = [1,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Deep evaluation of data structures", description = "This package provides methods for fully evaluating data structures\n(\\\"deep evaluation\\\"). Deep evaluation is often used for adding\nstrictness to a program, e.g. in order to force pending exceptions,\nremove space leaks, or force lazy I/O to happen. It is also useful\nin parallel programs, to ensure pending work does not migrate to the\nwrong thread.\n\nThe primary use of this package is via the 'deepseq' function, a\n\\\"deep\\\" version of 'seq'. It is implemented on top of an 'NFData'\ntypeclass (\\\"Normal Form Data\\\", data structures with no unevaluated\ncomponents) which defines strategies for fully evaluating different\ndata types.\n", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","DeepSeq"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/deepseq-1.3.0.0"], libraryDirs = ["/usr/lib/ghc/deepseq-1.3.0.0"], hsLibraries = ["HSdeepseq-1.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/deepseq-1.3.0.0/deepseq.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/deepseq-1.3.0.0"]}),(InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9",InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "GHC primitives", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Classes"],ModuleName ["GHC","CString"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/ghc-prim-0.2.0.0"], libraryDirs = ["/usr/lib/ghc/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.2.0.0"]}),(InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b",InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Integer library based on GMP", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"],ModuleName ["GHC","Integer","GMP","Prim"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], trusted = False, importDirs = ["/usr/lib/ghc/integer-gmp-0.4.0.0"], libraryDirs = ["/usr/lib/ghc/integer-gmp-0.4.0.0"], hsLibraries = ["HSinteger-gmp-0.4.0.0"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/integer-gmp-0.4.0.0/integer-gmp.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/integer-gmp-0.4.0.0"]}),(InstalledPackageId "mtl-2.1.2-cf6082d8d4c6758d23401302efadd028",InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.1.2-cf6082d8d4c6758d23401302efadd028", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,1,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Edward Kmett <ekmett@gmail.com>", author = "Andy Gill", stability = "", homepage = "http://github.com/ekmett/mtl", pkgUrl = "", synopsis = "Monad classes, using functional dependencies", description = "Monad classes using functional dependencies, with instances\nfor various monad transformers, inspired by the paper\n/Functional Programming with Overloading and Higher-Order Polymorphism/,\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Cont"],ModuleName ["Control","Monad","Cont","Class"],ModuleName ["Control","Monad","Error"],ModuleName ["Control","Monad","Error","Class"],ModuleName ["Control","Monad","Identity"],ModuleName ["Control","Monad","List"],ModuleName ["Control","Monad","RWS"],ModuleName ["Control","Monad","RWS","Class"],ModuleName ["Control","Monad","RWS","Lazy"],ModuleName ["Control","Monad","RWS","Strict"],ModuleName ["Control","Monad","Reader"],ModuleName ["Control","Monad","Reader","Class"],ModuleName ["Control","Monad","State"],ModuleName ["Control","Monad","State","Class"],ModuleName ["Control","Monad","State","Lazy"],ModuleName ["Control","Monad","State","Strict"],ModuleName ["Control","Monad","Trans"],ModuleName ["Control","Monad","Writer"],ModuleName ["Control","Monad","Writer","Class"],ModuleName ["Control","Monad","Writer","Lazy"],ModuleName ["Control","Monad","Writer","Strict"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/mtl-2.1.2/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/mtl-2.1.2/ghc-7.4.2"], hsLibraries = ["HSmtl-2.1.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "transformers-0.3.0.0-2889ebed7e61112cda7ded5e4c153bcf"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/mtl-2.1.2/html/mtl.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/mtl-2.1.2/html"]}),(InstalledPackageId "old-locale-1.0.0.4-b1d945ebea59a524cba400a524cb40aa",InstalledPackageInfo {installedPackageId = InstalledPackageId "old-locale-1.0.0.4-b1d945ebea59a524cba400a524cb40aa", sourcePackageId = PackageIdentifier {pkgName = PackageName "old-locale", pkgVersion = Version {versionBranch = [1,0,0,4], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "locale library", description = "This package provides the old locale library.\nFor new code, the new locale library is recommended.", category = "System", exposed = True, exposedModules = [ModuleName ["System","Locale"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/old-locale-1.0.0.4"], libraryDirs = ["/usr/lib/ghc/old-locale-1.0.0.4"], hsLibraries = ["HSold-locale-1.0.0.4"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/old-locale-1.0.0.4/old-locale.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/old-locale-1.0.0.4"]}),(InstalledPackageId "parsec-3.1.3-eb499eea44c5d4917d875b6f94c7b0ff",InstalledPackageInfo {installedPackageId = InstalledPackageId "parsec-3.1.3-eb499eea44c5d4917d875b6f94c7b0ff", sourcePackageId = PackageIdentifier {pkgName = PackageName "parsec", pkgVersion = Version {versionBranch = [3,1,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Antoine Latter <aslatter@gmail.com>", author = "Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>", stability = "", homepage = "http://www.cs.uu.nl/~daan/parsec.html", pkgUrl = "", synopsis = "Monadic parser combinators", description = "Parsec is designed from scratch as an industrial-strength parser\nlibrary.  It is simple, safe, well documented (on the package\nhomepage), has extensive libraries and good error messages,\nand is also fast.  It is defined as a monad transformer that can be\nstacked on arbitrary monads, and it is also parametric in the\ninput stream type.", category = "Parsing", exposed = True, exposedModules = [ModuleName ["Text","Parsec"],ModuleName ["Text","Parsec","String"],ModuleName ["Text","Parsec","ByteString"],ModuleName ["Text","Parsec","ByteString","Lazy"],ModuleName ["Text","Parsec","Text"],ModuleName ["Text","Parsec","Text","Lazy"],ModuleName ["Text","Parsec","Pos"],ModuleName ["Text","Parsec","Error"],ModuleName ["Text","Parsec","Prim"],ModuleName ["Text","Parsec","Char"],ModuleName ["Text","Parsec","Combinator"],ModuleName ["Text","Parsec","Token"],ModuleName ["Text","Parsec","Expr"],ModuleName ["Text","Parsec","Language"],ModuleName ["Text","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec"],ModuleName ["Text","ParserCombinators","Parsec","Char"],ModuleName ["Text","ParserCombinators","Parsec","Combinator"],ModuleName ["Text","ParserCombinators","Parsec","Error"],ModuleName ["Text","ParserCombinators","Parsec","Expr"],ModuleName ["Text","ParserCombinators","Parsec","Language"],ModuleName ["Text","ParserCombinators","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec","Pos"],ModuleName ["Text","ParserCombinators","Parsec","Prim"],ModuleName ["Text","ParserCombinators","Parsec","Token"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/parsec-3.1.3/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/parsec-3.1.3/ghc-7.4.2"], hsLibraries = ["HSparsec-3.1.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",InstalledPackageId "mtl-2.1.2-cf6082d8d4c6758d23401302efadd028",InstalledPackageId "text-0.11.2.3-7427aa3daf930bd36d392386f0ef5048"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/parsec-3.1.3/html/parsec.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/parsec-3.1.3/html"]}),(InstalledPackageId "random-1.0.1.1-5bcf17e975ad42d3244dd9f6f76c56ce",InstalledPackageInfo {installedPackageId = InstalledPackageId "random-1.0.1.1-5bcf17e975ad42d3244dd9f6f76c56ce", sourcePackageId = PackageIdentifier {pkgName = PackageName "random", pkgVersion = Version {versionBranch = [1,0,1,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "rrnewton@gmail.com", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "random number library", description = "This package provides a basic random number generation\nlibrary, including the ability to split random number\ngenerators.", category = "System", exposed = True, exposedModules = [ModuleName ["System","Random"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/random-1.0.1.1/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/random-1.0.1.1/ghc-7.4.2"], hsLibraries = ["HSrandom-1.0.1.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "time-1.4-b8e1c3d423daa1e2c5470a82caf23b52"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/random-1.0.1.1/html/random.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/random-1.0.1.1/html"]}),(InstalledPackageId "text-0.11.2.3-7427aa3daf930bd36d392386f0ef5048",InstalledPackageInfo {installedPackageId = InstalledPackageId "text-0.11.2.3-7427aa3daf930bd36d392386f0ef5048", sourcePackageId = PackageIdentifier {pkgName = PackageName "text", pkgVersion = Version {versionBranch = [0,11,2,3], versionTags = []}}, license = BSD3, copyright = "2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper", maintainer = "Bryan O'Sullivan <bos@serpentine.com>", author = "Bryan O'Sullivan <bos@serpentine.com>", stability = "", homepage = "https://github.com/bos/text", pkgUrl = "", synopsis = "An efficient packed Unicode text type.", description = "\nAn efficient packed, immutable Unicode text type (both strict and\nlazy), with a powerful loop fusion optimization framework.\n\nThe 'Text' type represents Unicode character strings, in a time and\nspace-efficient manner. This package provides text processing\ncapabilities that are optimized for performance critical use, both\nin terms of large data quantities and high speed.\n\nThe 'Text' type provides character-encoding, type-safe case\nconversion via whole-string case conversion functions. It also\nprovides a range of functions for converting 'Text' values to and from\n'ByteStrings', using several standard encodings.\n\nEfficient locale-sensitive support for text IO is also supported.\n\nThese modules are intended to be imported qualified, to avoid name\nclashes with Prelude functions, e.g.\n\n> import qualified Data.Text as T\n\nTo use an extended and very rich family of functions for working\nwith Unicode text (including normalization, regular expressions,\nnon-standard encodings, text breaking, and locales), see\nthe @text-icu@ package:\n<http://hackage.haskell.org/package/text-icu>\n\n&#8212;&#8212; RELEASE NOTES &#8212;&#8212;\n\nChanges in 0.11.2.0:\n\n* String literals are now converted directly from the format in\nwhich GHC stores them into 'Text', without an intermediate\ntransformation through 'String', and without inlining of\nconversion code at each site where a string literal is declared.\n", category = "Data, Text", exposed = True, exposedModules = [ModuleName ["Data","Text"],ModuleName ["Data","Text","Array"],ModuleName ["Data","Text","Encoding"],ModuleName ["Data","Text","Encoding","Error"],ModuleName ["Data","Text","Foreign"],ModuleName ["Data","Text","IO"],ModuleName ["Data","Text","Internal"],ModuleName ["Data","Text","Lazy"],ModuleName ["Data","Text","Lazy","Builder"],ModuleName ["Data","Text","Lazy","Builder","Int"],ModuleName ["Data","Text","Lazy","Builder","RealFloat"],ModuleName ["Data","Text","Lazy","Encoding"],ModuleName ["Data","Text","Lazy","IO"],ModuleName ["Data","Text","Lazy","Internal"],ModuleName ["Data","Text","Lazy","Read"],ModuleName ["Data","Text","Read"]], hiddenModules = [ModuleName ["Data","Text","Encoding","Fusion"],ModuleName ["Data","Text","Encoding","Fusion","Common"],ModuleName ["Data","Text","Encoding","Utf16"],ModuleName ["Data","Text","Encoding","Utf32"],ModuleName ["Data","Text","Encoding","Utf8"],ModuleName ["Data","Text","Fusion"],ModuleName ["Data","Text","Fusion","CaseMapping"],ModuleName ["Data","Text","Fusion","Common"],ModuleName ["Data","Text","Fusion","Internal"],ModuleName ["Data","Text","Fusion","Size"],ModuleName ["Data","Text","IO","Internal"],ModuleName ["Data","Text","Lazy","Builder","Functions"],ModuleName ["Data","Text","Lazy","Builder","RealFloat","Functions"],ModuleName ["Data","Text","Lazy","Encoding","Fusion"],ModuleName ["Data","Text","Lazy","Fusion"],ModuleName ["Data","Text","Lazy","Search"],ModuleName ["Data","Text","Private"],ModuleName ["Data","Text","Search"],ModuleName ["Data","Text","Unsafe"],ModuleName ["Data","Text","Unsafe","Base"],ModuleName ["Data","Text","UnsafeChar"],ModuleName ["Data","Text","UnsafeShift"],ModuleName ["Data","Text","Util"]], trusted = False, importDirs = ["/home/richard/.cabal/lib/text-0.11.2.3/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/text-0.11.2.3/ghc-7.4.2"], hsLibraries = ["HStext-0.11.2.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9",InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/text-0.11.2.3/html/text.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/text-0.11.2.3/html"]}),(InstalledPackageId "time-1.4-b8e1c3d423daa1e2c5470a82caf23b52",InstalledPackageInfo {installedPackageId = InstalledPackageId "time-1.4-b8e1c3d423daa1e2c5470a82caf23b52", sourcePackageId = PackageIdentifier {pkgName = PackageName "time", pkgVersion = Version {versionBranch = [1,4], versionTags = []}}, license = BSD3, copyright = "", maintainer = "<ashley@semantic.org>", author = "Ashley Yakeley", stability = "stable", homepage = "http://semantic.org/TimeLib/", pkgUrl = "", synopsis = "A time library", description = "A time library", category = "System", exposed = True, exposedModules = [ModuleName ["Data","Time","Calendar"],ModuleName ["Data","Time","Calendar","MonthDay"],ModuleName ["Data","Time","Calendar","OrdinalDate"],ModuleName ["Data","Time","Calendar","WeekDate"],ModuleName ["Data","Time","Calendar","Julian"],ModuleName ["Data","Time","Calendar","Easter"],ModuleName ["Data","Time","Clock"],ModuleName ["Data","Time","Clock","POSIX"],ModuleName ["Data","Time","Clock","TAI"],ModuleName ["Data","Time","LocalTime"],ModuleName ["Data","Time","Format"],ModuleName ["Data","Time"]], hiddenModules = [ModuleName ["Data","Time","Calendar","Private"],ModuleName ["Data","Time","Calendar","Days"],ModuleName ["Data","Time","Calendar","Gregorian"],ModuleName ["Data","Time","Calendar","JulianYearDay"],ModuleName ["Data","Time","Clock","Scale"],ModuleName ["Data","Time","Clock","UTC"],ModuleName ["Data","Time","Clock","CTimeval"],ModuleName ["Data","Time","Clock","UTCDiff"],ModuleName ["Data","Time","LocalTime","TimeZone"],ModuleName ["Data","Time","LocalTime","TimeOfDay"],ModuleName ["Data","Time","LocalTime","LocalTime"],ModuleName ["Data","Time","Format","Parse"]], trusted = False, importDirs = ["/usr/lib/ghc/time-1.4"], libraryDirs = ["/usr/lib/ghc/time-1.4"], hsLibraries = ["HStime-1.4"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/time-1.4/include"], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageId "old-locale-1.0.0.4-b1d945ebea59a524cba400a524cb40aa"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/time-1.4/time.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/time-1.4"]}),(InstalledPackageId "transformers-0.3.0.0-2889ebed7e61112cda7ded5e4c153bcf",InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.3.0.0-2889ebed7e61112cda7ded5e4c153bcf", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", synopsis = "Concrete functor and monad transformers", description = "A portable library of functor and monad transformers, inspired by\nthe paper \\\"Functional Programming with Overloading and Higher-Order\nPolymorphism\\\", by Mark P Jones,\nin /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis package contains:\n\n* the monad transformer class (in \"Control.Monad.Trans.Class\")\n\n* concrete functor and monad transformers, each with associated\noperations and functions to lift operations associated with other\ntransformers.\n\nIt can be used on its own in portable Haskell code, or with the monad\nclasses in the @mtl@ or @monads-tf@ packages, which automatically\nlift operations introduced by monad transformers through other\ntransformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Applicative","Backwards"],ModuleName ["Control","Applicative","Lift"],ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"],ModuleName ["Data","Functor","Reverse"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/transformers-0.3.0.0/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/transformers-0.3.0.0/ghc-7.4.2"], hsLibraries = ["HStransformers-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/transformers-0.3.0.0/html/transformers.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/transformers-0.3.0.0/html"]})]) (fromList [(PackageName "array",fromList [(Version {versionBranch = [0,4,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61", sourcePackageId = PackageIdentifier {pkgName = PackageName "array", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Mutable and immutable arrays", description = "This package defines the classes @IArray@ of immutable arrays and\n@MArray@ of arrays mutable within appropriate monads, as well as\nsome instances of these classes.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Array","Base"],ModuleName ["Data","Array","IArray"],ModuleName ["Data","Array","IO"],ModuleName ["Data","Array","IO","Safe"],ModuleName ["Data","Array","IO","Internals"],ModuleName ["Data","Array","MArray"],ModuleName ["Data","Array","MArray","Safe"],ModuleName ["Data","Array","ST"],ModuleName ["Data","Array","ST","Safe"],ModuleName ["Data","Array","Storable"],ModuleName ["Data","Array","Storable","Safe"],ModuleName ["Data","Array","Storable","Internals"],ModuleName ["Data","Array","Unboxed"],ModuleName ["Data","Array","Unsafe"],ModuleName ["Data","Array"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/array-0.4.0.0"], libraryDirs = ["/usr/lib/ghc/array-0.4.0.0"], hsLibraries = ["HSarray-0.4.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/array-0.4.0.0/array.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/array-0.4.0.0"]}])]),(PackageName "base",fromList [(Version {versionBranch = [4,5,1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b", sourcePackageId = PackageIdentifier {pkgName = PackageName "base", pkgVersion = Version {versionBranch = [4,5,1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Basic libraries", description = "This package contains the Prelude and its support libraries,\nand a large collection of useful libraries ranging from data\nstructures to parsing combinators and debugging utilities.", category = "", exposed = True, exposedModules = [ModuleName ["Foreign","Concurrent"],ModuleName ["GHC","Arr"],ModuleName ["GHC","Base"],ModuleName ["GHC","Conc"],ModuleName ["GHC","Conc","IO"],ModuleName ["GHC","Conc","Signal"],ModuleName ["GHC","Conc","Sync"],ModuleName ["GHC","ConsoleHandler"],ModuleName ["GHC","Constants"],ModuleName ["GHC","Desugar"],ModuleName ["GHC","Enum"],ModuleName ["GHC","Environment"],ModuleName ["GHC","Err"],ModuleName ["GHC","Exception"],ModuleName ["GHC","Exts"],ModuleName ["GHC","Fingerprint"],ModuleName ["GHC","Fingerprint","Type"],ModuleName ["GHC","Float"],ModuleName ["GHC","Float","ConversionUtils"],ModuleName ["GHC","Float","RealFracMethods"],ModuleName ["GHC","Foreign"],ModuleName ["GHC","ForeignPtr"],ModuleName ["GHC","Handle"],ModuleName ["GHC","IO"],ModuleName ["GHC","IO","Buffer"],ModuleName ["GHC","IO","BufferedIO"],ModuleName ["GHC","IO","Device"],ModuleName ["GHC","IO","Encoding"],ModuleName ["GHC","IO","Encoding","CodePage"],ModuleName ["GHC","IO","Encoding","Failure"],ModuleName ["GHC","IO","Encoding","Iconv"],ModuleName ["GHC","IO","Encoding","Latin1"],ModuleName ["GHC","IO","Encoding","Types"],ModuleName ["GHC","IO","Encoding","UTF16"],ModuleName ["GHC","IO","Encoding","UTF32"],ModuleName ["GHC","IO","Encoding","UTF8"],ModuleName ["GHC","IO","Exception"],ModuleName ["GHC","IO","FD"],ModuleName ["GHC","IO","Handle"],ModuleName ["GHC","IO","Handle","FD"],ModuleName ["GHC","IO","Handle","Internals"],ModuleName ["GHC","IO","Handle","Text"],ModuleName ["GHC","IO","Handle","Types"],ModuleName ["GHC","IO","IOMode"],ModuleName ["GHC","IOArray"],ModuleName ["GHC","IOBase"],ModuleName ["GHC","IORef"],ModuleName ["GHC","Int"],ModuleName ["GHC","List"],ModuleName ["GHC","MVar"],ModuleName ["GHC","Num"],ModuleName ["GHC","PArr"],ModuleName ["GHC","Pack"],ModuleName ["GHC","Ptr"],ModuleName ["GHC","Read"],ModuleName ["GHC","Real"],ModuleName ["GHC","ST"],ModuleName ["GHC","Stack"],ModuleName ["GHC","Stats"],ModuleName ["GHC","Show"],ModuleName ["GHC","Stable"],ModuleName ["GHC","Storable"],ModuleName ["GHC","STRef"],ModuleName ["GHC","TopHandler"],ModuleName ["GHC","Unicode"],ModuleName ["GHC","Weak"],ModuleName ["GHC","Word"],ModuleName ["System","Timeout"],ModuleName ["GHC","Event"],ModuleName ["Control","Applicative"],ModuleName ["Control","Arrow"],ModuleName ["Control","Category"],ModuleName ["Control","Concurrent"],ModuleName ["Control","Concurrent","Chan"],ModuleName ["Control","Concurrent","MVar"],ModuleName ["Control","Concurrent","QSem"],ModuleName ["Control","Concurrent","QSemN"],ModuleName ["Control","Concurrent","SampleVar"],ModuleName ["Control","Exception"],ModuleName ["Control","Exception","Base"],ModuleName ["Control","OldException"],ModuleName ["Control","Monad"],ModuleName ["Control","Monad","Fix"],ModuleName ["Control","Monad","Instances"],ModuleName ["Control","Monad","ST"],ModuleName ["Control","Monad","ST","Safe"],ModuleName ["Control","Monad","ST","Unsafe"],ModuleName ["Control","Monad","ST","Lazy"],ModuleName ["Control","Monad","ST","Lazy","Safe"],ModuleName ["Control","Monad","ST","Lazy","Unsafe"],ModuleName ["Control","Monad","ST","Strict"],ModuleName ["Control","Monad","Zip"],ModuleName ["Data","Bits"],ModuleName ["Data","Bool"],ModuleName ["Data","Char"],ModuleName ["Data","Complex"],ModuleName ["Data","Dynamic"],ModuleName ["Data","Either"],ModuleName ["Data","Eq"],ModuleName ["Data","Data"],ModuleName ["Data","Fixed"],ModuleName ["Data","Foldable"],ModuleName ["Data","Function"],ModuleName ["Data","Functor"],ModuleName ["Data","HashTable"],ModuleName ["Data","IORef"],ModuleName ["Data","Int"],ModuleName ["Data","Ix"],ModuleName ["Data","List"],ModuleName ["Data","Maybe"],ModuleName ["Data","Monoid"],ModuleName ["Data","Ord"],ModuleName ["Data","Ratio"],ModuleName ["Data","STRef"],ModuleName ["Data","STRef","Lazy"],ModuleName ["Data","STRef","Strict"],ModuleName ["Data","String"],ModuleName ["Data","Traversable"],ModuleName ["Data","Tuple"],ModuleName ["Data","Typeable"],ModuleName ["Data","Typeable","Internal"],ModuleName ["Data","Unique"],ModuleName ["Data","Version"],ModuleName ["Data","Word"],ModuleName ["Debug","Trace"],ModuleName ["Foreign"],ModuleName ["Foreign","C"],ModuleName ["Foreign","C","Error"],ModuleName ["Foreign","C","String"],ModuleName ["Foreign","C","Types"],ModuleName ["Foreign","ForeignPtr"],ModuleName ["Foreign","ForeignPtr","Safe"],ModuleName ["Foreign","ForeignPtr","Unsafe"],ModuleName ["Foreign","Marshal"],ModuleName ["Foreign","Marshal","Alloc"],ModuleName ["Foreign","Marshal","Array"],ModuleName ["Foreign","Marshal","Error"],ModuleName ["Foreign","Marshal","Pool"],ModuleName ["Foreign","Marshal","Safe"],ModuleName ["Foreign","Marshal","Utils"],ModuleName ["Foreign","Marshal","Unsafe"],ModuleName ["Foreign","Ptr"],ModuleName ["Foreign","Safe"],ModuleName ["Foreign","StablePtr"],ModuleName ["Foreign","Storable"],ModuleName ["Numeric"],ModuleName ["Prelude"],ModuleName ["System","Console","GetOpt"],ModuleName ["System","CPUTime"],ModuleName ["System","Environment"],ModuleName ["System","Exit"],ModuleName ["System","IO"],ModuleName ["System","IO","Error"],ModuleName ["System","IO","Unsafe"],ModuleName ["System","Info"],ModuleName ["System","Mem"],ModuleName ["System","Mem","StableName"],ModuleName ["System","Mem","Weak"],ModuleName ["System","Posix","Internals"],ModuleName ["System","Posix","Types"],ModuleName ["Text","ParserCombinators","ReadP"],ModuleName ["Text","ParserCombinators","ReadPrec"],ModuleName ["Text","Printf"],ModuleName ["Text","Read"],ModuleName ["Text","Read","Lex"],ModuleName ["Text","Show"],ModuleName ["Text","Show","Functions"],ModuleName ["Unsafe","Coerce"]], hiddenModules = [ModuleName ["GHC","Event","Array"],ModuleName ["GHC","Event","Clock"],ModuleName ["GHC","Event","Control"],ModuleName ["GHC","Event","EPoll"],ModuleName ["GHC","Event","IntMap"],ModuleName ["GHC","Event","Internal"],ModuleName ["GHC","Event","KQueue"],ModuleName ["GHC","Event","Manager"],ModuleName ["GHC","Event","PSQ"],ModuleName ["GHC","Event","Poll"],ModuleName ["GHC","Event","Thread"],ModuleName ["GHC","Event","Unique"],ModuleName ["Control","Monad","ST","Imp"],ModuleName ["Control","Monad","ST","Lazy","Imp"],ModuleName ["Foreign","ForeignPtr","Imp"]], trusted = False, importDirs = ["/usr/lib/ghc/base-4.5.1.0"], libraryDirs = ["/usr/lib/ghc/base-4.5.1.0"], hsLibraries = ["HSbase-4.5.1.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/base-4.5.1.0/include"], includes = ["HsBase.h"], depends = [InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9",InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b",InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/base-4.5.1.0/base.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/base-4.5.1.0"]}])]),(PackageName "bytestring",fromList [(Version {versionBranch = [0,9,2,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8", sourcePackageId = PackageIdentifier {pkgName = PackageName "bytestring", pkgVersion = Version {versionBranch = [0,9,2,1], versionTags = []}}, license = BSD3, copyright = "Copyright (c) Don Stewart   2005-2009,\n(c) Duncan Coutts 2006-2009,\n(c) David Roundy  2003-2005.", maintainer = "dons00@gmail.com, duncan@community.haskell.org", author = "Don Stewart, Duncan Coutts", stability = "", homepage = "http://www.cse.unsw.edu.au/~dons/fps.html", pkgUrl = "", synopsis = "Fast, packed, strict and lazy byte arrays with a list interface", description = "A time and space-efficient implementation of byte vectors using\npacked Word8 arrays, suitable for high performance use, both in terms\nof large data quantities, or high speed requirements. Byte vectors\nare encoded as strict 'Word8' arrays of bytes, and lazy lists of\nstrict chunks, held in a 'ForeignPtr', and can be passed between C\nand Haskell with little effort.\n\nTest coverage data for this library is available at:\n<http://code.haskell.org/~dons/tests/bytestring/hpc_index.html>", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","ByteString"],ModuleName ["Data","ByteString","Char8"],ModuleName ["Data","ByteString","Unsafe"],ModuleName ["Data","ByteString","Internal"],ModuleName ["Data","ByteString","Lazy"],ModuleName ["Data","ByteString","Lazy","Char8"],ModuleName ["Data","ByteString","Lazy","Internal"],ModuleName ["Data","ByteString","Fusion"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/bytestring-0.9.2.1"], libraryDirs = ["/usr/lib/ghc/bytestring-0.9.2.1"], hsLibraries = ["HSbytestring-0.9.2.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/bytestring-0.9.2.1/include"], includes = ["fpstring.h"], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/bytestring-0.9.2.1/bytestring.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/bytestring-0.9.2.1"]}])]),(PackageName "bytestring-lexing",fromList [(Version {versionBranch = [0,4,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "bytestring-lexing-0.4.0-e551a3f528aad3cfa92e296841654d5c", sourcePackageId = PackageIdentifier {pkgName = PackageName "bytestring-lexing", pkgVersion = Version {versionBranch = [0,4,0], versionTags = []}}, license = BSD3, copyright = "Copyright (c) 2012 wren ng thornton, 2008--2011 Don Stewart", maintainer = "wren@community.haskell.org", author = "wren ng thornton, Don Stewart", stability = "provisional", homepage = "http://code.haskell.org/~wren/", pkgUrl = "", synopsis = "Parse and produce literals efficiently from strict or lazy bytestrings.", description = "Parse and produce literals efficiently from strict or lazy bytestrings.\n\nSome benchmarks for this package can be found at: <http://community.haskell.org/~wren/bytestring-lexing/test/bench/html>", category = "Data", exposed = True, exposedModules = [ModuleName ["Data","ByteString","Lex","Integral"],ModuleName ["Data","ByteString","Lex","Double"],ModuleName ["Data","ByteString","Lex","Lazy","Double"]], hiddenModules = [ModuleName ["Data","ByteString","Lex","Internal"]], trusted = False, importDirs = ["/home/richard/.cabal/lib/bytestring-lexing-0.4.0/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/bytestring-lexing-0.4.0/ghc-7.4.2"], hsLibraries = ["HSbytestring-lexing-0.4.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/bytestring-lexing-0.4.0/html/bytestring-lexing.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/bytestring-lexing-0.4.0/html"]}])]),(PackageName "containers",fromList [(Version {versionBranch = [0,5,2,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "containers-0.5.2.1-cd7720af9b18babce062e2c9d08db570", sourcePackageId = PackageIdentifier {pkgName = PackageName "containers", pkgVersion = Version {versionBranch = [0,5,2,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "fox@ucw.cz", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Assorted concrete container types", description = "This package contains efficient general-purpose implementations\nof various basic immutable container types.  The declared cost of\neach operation is either worst-case or amortized, but remains\nvalid even if structures are shared.", category = "Data Structures", exposed = True, exposedModules = [ModuleName ["Data","Graph"],ModuleName ["Data","Sequence"],ModuleName ["Data","Tree"],ModuleName ["Data","IntMap"],ModuleName ["Data","IntMap","Lazy"],ModuleName ["Data","IntMap","Strict"],ModuleName ["Data","IntSet"],ModuleName ["Data","Map"],ModuleName ["Data","Map","Lazy"],ModuleName ["Data","Map","Strict"],ModuleName ["Data","Set"]], hiddenModules = [ModuleName ["Data","BitUtil"],ModuleName ["Data","IntMap","Base"],ModuleName ["Data","IntSet","Base"],ModuleName ["Data","Map","Base"],ModuleName ["Data","Set","Base"],ModuleName ["Data","StrictPair"]], trusted = False, importDirs = ["/home/richard/.cabal/lib/containers-0.5.2.1/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/containers-0.5.2.1/ghc-7.4.2"], hsLibraries = ["HScontainers-0.5.2.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/containers-0.5.2.1/html/containers.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/containers-0.5.2.1/html"]}])]),(PackageName "deepseq",fromList [(Version {versionBranch = [1,3,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed", sourcePackageId = PackageIdentifier {pkgName = PackageName "deepseq", pkgVersion = Version {versionBranch = [1,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Deep evaluation of data structures", description = "This package provides methods for fully evaluating data structures\n(\\\"deep evaluation\\\"). Deep evaluation is often used for adding\nstrictness to a program, e.g. in order to force pending exceptions,\nremove space leaks, or force lazy I/O to happen. It is also useful\nin parallel programs, to ensure pending work does not migrate to the\nwrong thread.\n\nThe primary use of this package is via the 'deepseq' function, a\n\\\"deep\\\" version of 'seq'. It is implemented on top of an 'NFData'\ntypeclass (\\\"Normal Form Data\\\", data structures with no unevaluated\ncomponents) which defines strategies for fully evaluating different\ndata types.\n", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","DeepSeq"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/deepseq-1.3.0.0"], libraryDirs = ["/usr/lib/ghc/deepseq-1.3.0.0"], hsLibraries = ["HSdeepseq-1.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/deepseq-1.3.0.0/deepseq.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/deepseq-1.3.0.0"]}])]),(PackageName "ghc-prim",fromList [(Version {versionBranch = [0,2,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9", sourcePackageId = PackageIdentifier {pkgName = PackageName "ghc-prim", pkgVersion = Version {versionBranch = [0,2,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "GHC primitives", description = "GHC primitives.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Prim"],ModuleName ["GHC","Classes"],ModuleName ["GHC","CString"],ModuleName ["GHC","Debug"],ModuleName ["GHC","Generics"],ModuleName ["GHC","Magic"],ModuleName ["GHC","PrimopWrappers"],ModuleName ["GHC","IntWord64"],ModuleName ["GHC","Tuple"],ModuleName ["GHC","Types"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/ghc-prim-0.2.0.0"], libraryDirs = ["/usr/lib/ghc/ghc-prim-0.2.0.0"], hsLibraries = ["HSghc-prim-0.2.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "builtin_rts"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/ghc-prim-0.2.0.0/ghc-prim.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/ghc-prim-0.2.0.0"]}])]),(PackageName "integer-gmp",fromList [(Version {versionBranch = [0,4,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b", sourcePackageId = PackageIdentifier {pkgName = PackageName "integer-gmp", pkgVersion = Version {versionBranch = [0,4,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "Integer library based on GMP", description = "This package contains an Integer library based on GMP.", category = "", exposed = True, exposedModules = [ModuleName ["GHC","Integer"],ModuleName ["GHC","Integer","GMP","Internals"],ModuleName ["GHC","Integer","GMP","Prim"],ModuleName ["GHC","Integer","Logarithms"],ModuleName ["GHC","Integer","Logarithms","Internals"]], hiddenModules = [ModuleName ["GHC","Integer","Type"]], trusted = False, importDirs = ["/usr/lib/ghc/integer-gmp-0.4.0.0"], libraryDirs = ["/usr/lib/ghc/integer-gmp-0.4.0.0"], hsLibraries = ["HSinteger-gmp-0.4.0.0"], extraLibraries = ["gmp"], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/integer-gmp-0.4.0.0/integer-gmp.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/integer-gmp-0.4.0.0"]}])]),(PackageName "mtl",fromList [(Version {versionBranch = [2,1,2], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "mtl-2.1.2-cf6082d8d4c6758d23401302efadd028", sourcePackageId = PackageIdentifier {pkgName = PackageName "mtl", pkgVersion = Version {versionBranch = [2,1,2], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Edward Kmett <ekmett@gmail.com>", author = "Andy Gill", stability = "", homepage = "http://github.com/ekmett/mtl", pkgUrl = "", synopsis = "Monad classes, using functional dependencies", description = "Monad classes using functional dependencies, with instances\nfor various monad transformers, inspired by the paper\n/Functional Programming with Overloading and Higher-Order Polymorphism/,\nby Mark P Jones, in /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Monad","Cont"],ModuleName ["Control","Monad","Cont","Class"],ModuleName ["Control","Monad","Error"],ModuleName ["Control","Monad","Error","Class"],ModuleName ["Control","Monad","Identity"],ModuleName ["Control","Monad","List"],ModuleName ["Control","Monad","RWS"],ModuleName ["Control","Monad","RWS","Class"],ModuleName ["Control","Monad","RWS","Lazy"],ModuleName ["Control","Monad","RWS","Strict"],ModuleName ["Control","Monad","Reader"],ModuleName ["Control","Monad","Reader","Class"],ModuleName ["Control","Monad","State"],ModuleName ["Control","Monad","State","Class"],ModuleName ["Control","Monad","State","Lazy"],ModuleName ["Control","Monad","State","Strict"],ModuleName ["Control","Monad","Trans"],ModuleName ["Control","Monad","Writer"],ModuleName ["Control","Monad","Writer","Class"],ModuleName ["Control","Monad","Writer","Lazy"],ModuleName ["Control","Monad","Writer","Strict"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/mtl-2.1.2/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/mtl-2.1.2/ghc-7.4.2"], hsLibraries = ["HSmtl-2.1.2"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "transformers-0.3.0.0-2889ebed7e61112cda7ded5e4c153bcf"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/mtl-2.1.2/html/mtl.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/mtl-2.1.2/html"]}])]),(PackageName "old-locale",fromList [(Version {versionBranch = [1,0,0,4], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "old-locale-1.0.0.4-b1d945ebea59a524cba400a524cb40aa", sourcePackageId = PackageIdentifier {pkgName = PackageName "old-locale", pkgVersion = Version {versionBranch = [1,0,0,4], versionTags = []}}, license = BSD3, copyright = "", maintainer = "libraries@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "locale library", description = "This package provides the old locale library.\nFor new code, the new locale library is recommended.", category = "System", exposed = True, exposedModules = [ModuleName ["System","Locale"]], hiddenModules = [], trusted = False, importDirs = ["/usr/lib/ghc/old-locale-1.0.0.4"], libraryDirs = ["/usr/lib/ghc/old-locale-1.0.0.4"], hsLibraries = ["HSold-locale-1.0.0.4"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/old-locale-1.0.0.4/old-locale.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/old-locale-1.0.0.4"]}])]),(PackageName "parsec",fromList [(Version {versionBranch = [3,1,3], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "parsec-3.1.3-eb499eea44c5d4917d875b6f94c7b0ff", sourcePackageId = PackageIdentifier {pkgName = PackageName "parsec", pkgVersion = Version {versionBranch = [3,1,3], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Antoine Latter <aslatter@gmail.com>", author = "Daan Leijen <daan@microsoft.com>, Paolo Martini <paolo@nemail.it>", stability = "", homepage = "http://www.cs.uu.nl/~daan/parsec.html", pkgUrl = "", synopsis = "Monadic parser combinators", description = "Parsec is designed from scratch as an industrial-strength parser\nlibrary.  It is simple, safe, well documented (on the package\nhomepage), has extensive libraries and good error messages,\nand is also fast.  It is defined as a monad transformer that can be\nstacked on arbitrary monads, and it is also parametric in the\ninput stream type.", category = "Parsing", exposed = True, exposedModules = [ModuleName ["Text","Parsec"],ModuleName ["Text","Parsec","String"],ModuleName ["Text","Parsec","ByteString"],ModuleName ["Text","Parsec","ByteString","Lazy"],ModuleName ["Text","Parsec","Text"],ModuleName ["Text","Parsec","Text","Lazy"],ModuleName ["Text","Parsec","Pos"],ModuleName ["Text","Parsec","Error"],ModuleName ["Text","Parsec","Prim"],ModuleName ["Text","Parsec","Char"],ModuleName ["Text","Parsec","Combinator"],ModuleName ["Text","Parsec","Token"],ModuleName ["Text","Parsec","Expr"],ModuleName ["Text","Parsec","Language"],ModuleName ["Text","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec"],ModuleName ["Text","ParserCombinators","Parsec","Char"],ModuleName ["Text","ParserCombinators","Parsec","Combinator"],ModuleName ["Text","ParserCombinators","Parsec","Error"],ModuleName ["Text","ParserCombinators","Parsec","Expr"],ModuleName ["Text","ParserCombinators","Parsec","Language"],ModuleName ["Text","ParserCombinators","Parsec","Perm"],ModuleName ["Text","ParserCombinators","Parsec","Pos"],ModuleName ["Text","ParserCombinators","Parsec","Prim"],ModuleName ["Text","ParserCombinators","Parsec","Token"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/parsec-3.1.3/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/parsec-3.1.3/ghc-7.4.2"], hsLibraries = ["HSparsec-3.1.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",InstalledPackageId "mtl-2.1.2-cf6082d8d4c6758d23401302efadd028",InstalledPackageId "text-0.11.2.3-7427aa3daf930bd36d392386f0ef5048"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/parsec-3.1.3/html/parsec.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/parsec-3.1.3/html"]}])]),(PackageName "random",fromList [(Version {versionBranch = [1,0,1,1], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "random-1.0.1.1-5bcf17e975ad42d3244dd9f6f76c56ce", sourcePackageId = PackageIdentifier {pkgName = PackageName "random", pkgVersion = Version {versionBranch = [1,0,1,1], versionTags = []}}, license = BSD3, copyright = "", maintainer = "rrnewton@gmail.com", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "random number library", description = "This package provides a basic random number generation\nlibrary, including the ability to split random number\ngenerators.", category = "System", exposed = True, exposedModules = [ModuleName ["System","Random"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/random-1.0.1.1/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/random-1.0.1.1/ghc-7.4.2"], hsLibraries = ["HSrandom-1.0.1.1"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "time-1.4-b8e1c3d423daa1e2c5470a82caf23b52"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/random-1.0.1.1/html/random.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/random-1.0.1.1/html"]}])]),(PackageName "rts",fromList [(Version {versionBranch = [1,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "builtin_rts", sourcePackageId = PackageIdentifier {pkgName = PackageName "rts", pkgVersion = Version {versionBranch = [1,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "glasgow-haskell-users@haskell.org", author = "", stability = "", homepage = "", pkgUrl = "", synopsis = "", description = "", category = "", exposed = True, exposedModules = [], hiddenModules = [], trusted = False, importDirs = [], libraryDirs = ["/usr/lib/ghc"], hsLibraries = ["HSrts"], extraLibraries = ["ffi","m","rt","dl"], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/include"], includes = ["Stg.h"], depends = [], hugsOptions = [], ccOptions = [], ldOptions = ["-u","ghczmprim_GHCziTypes_Izh_static_info","-u","ghczmprim_GHCziTypes_Czh_static_info","-u","ghczmprim_GHCziTypes_Fzh_static_info","-u","ghczmprim_GHCziTypes_Dzh_static_info","-u","base_GHCziPtr_Ptr_static_info","-u","base_GHCziWord_Wzh_static_info","-u","base_GHCziInt_I8zh_static_info","-u","base_GHCziInt_I16zh_static_info","-u","base_GHCziInt_I32zh_static_info","-u","base_GHCziInt_I64zh_static_info","-u","base_GHCziWord_W8zh_static_info","-u","base_GHCziWord_W16zh_static_info","-u","base_GHCziWord_W32zh_static_info","-u","base_GHCziWord_W64zh_static_info","-u","base_GHCziStable_StablePtr_static_info","-u","ghczmprim_GHCziTypes_Izh_con_info","-u","ghczmprim_GHCziTypes_Czh_con_info","-u","ghczmprim_GHCziTypes_Fzh_con_info","-u","ghczmprim_GHCziTypes_Dzh_con_info","-u","base_GHCziPtr_Ptr_con_info","-u","base_GHCziPtr_FunPtr_con_info","-u","base_GHCziStable_StablePtr_con_info","-u","ghczmprim_GHCziTypes_False_closure","-u","ghczmprim_GHCziTypes_True_closure","-u","base_GHCziPack_unpackCString_closure","-u","base_GHCziIOziException_stackOverflow_closure","-u","base_GHCziIOziException_heapOverflow_closure","-u","base_ControlziExceptionziBase_nonTermination_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnMVar_closure","-u","base_GHCziIOziException_blockedIndefinitelyOnSTM_closure","-u","base_ControlziExceptionziBase_nestedAtomically_closure","-u","base_GHCziWeak_runFinalizzerBatch_closure","-u","base_GHCziTopHandler_flushStdHandles_closure","-u","base_GHCziTopHandler_runIO_closure","-u","base_GHCziTopHandler_runNonIO_closure","-u","base_GHCziConcziIO_ensureIOManagerIsRunning_closure","-u","base_GHCziConcziSync_runSparks_closure","-u","base_GHCziConcziSignal_runHandlers_closure"], frameworkDirs = [], frameworks = [], haddockInterfaces = [], haddockHTMLs = []}])]),(PackageName "text",fromList [(Version {versionBranch = [0,11,2,3], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "text-0.11.2.3-7427aa3daf930bd36d392386f0ef5048", sourcePackageId = PackageIdentifier {pkgName = PackageName "text", pkgVersion = Version {versionBranch = [0,11,2,3], versionTags = []}}, license = BSD3, copyright = "2009-2011 Bryan O'Sullivan, 2008-2009 Tom Harper", maintainer = "Bryan O'Sullivan <bos@serpentine.com>", author = "Bryan O'Sullivan <bos@serpentine.com>", stability = "", homepage = "https://github.com/bos/text", pkgUrl = "", synopsis = "An efficient packed Unicode text type.", description = "\nAn efficient packed, immutable Unicode text type (both strict and\nlazy), with a powerful loop fusion optimization framework.\n\nThe 'Text' type represents Unicode character strings, in a time and\nspace-efficient manner. This package provides text processing\ncapabilities that are optimized for performance critical use, both\nin terms of large data quantities and high speed.\n\nThe 'Text' type provides character-encoding, type-safe case\nconversion via whole-string case conversion functions. It also\nprovides a range of functions for converting 'Text' values to and from\n'ByteStrings', using several standard encodings.\n\nEfficient locale-sensitive support for text IO is also supported.\n\nThese modules are intended to be imported qualified, to avoid name\nclashes with Prelude functions, e.g.\n\n> import qualified Data.Text as T\n\nTo use an extended and very rich family of functions for working\nwith Unicode text (including normalization, regular expressions,\nnon-standard encodings, text breaking, and locales), see\nthe @text-icu@ package:\n<http://hackage.haskell.org/package/text-icu>\n\n&#8212;&#8212; RELEASE NOTES &#8212;&#8212;\n\nChanges in 0.11.2.0:\n\n* String literals are now converted directly from the format in\nwhich GHC stores them into 'Text', without an intermediate\ntransformation through 'String', and without inlining of\nconversion code at each site where a string literal is declared.\n", category = "Data, Text", exposed = True, exposedModules = [ModuleName ["Data","Text"],ModuleName ["Data","Text","Array"],ModuleName ["Data","Text","Encoding"],ModuleName ["Data","Text","Encoding","Error"],ModuleName ["Data","Text","Foreign"],ModuleName ["Data","Text","IO"],ModuleName ["Data","Text","Internal"],ModuleName ["Data","Text","Lazy"],ModuleName ["Data","Text","Lazy","Builder"],ModuleName ["Data","Text","Lazy","Builder","Int"],ModuleName ["Data","Text","Lazy","Builder","RealFloat"],ModuleName ["Data","Text","Lazy","Encoding"],ModuleName ["Data","Text","Lazy","IO"],ModuleName ["Data","Text","Lazy","Internal"],ModuleName ["Data","Text","Lazy","Read"],ModuleName ["Data","Text","Read"]], hiddenModules = [ModuleName ["Data","Text","Encoding","Fusion"],ModuleName ["Data","Text","Encoding","Fusion","Common"],ModuleName ["Data","Text","Encoding","Utf16"],ModuleName ["Data","Text","Encoding","Utf32"],ModuleName ["Data","Text","Encoding","Utf8"],ModuleName ["Data","Text","Fusion"],ModuleName ["Data","Text","Fusion","CaseMapping"],ModuleName ["Data","Text","Fusion","Common"],ModuleName ["Data","Text","Fusion","Internal"],ModuleName ["Data","Text","Fusion","Size"],ModuleName ["Data","Text","IO","Internal"],ModuleName ["Data","Text","Lazy","Builder","Functions"],ModuleName ["Data","Text","Lazy","Builder","RealFloat","Functions"],ModuleName ["Data","Text","Lazy","Encoding","Fusion"],ModuleName ["Data","Text","Lazy","Fusion"],ModuleName ["Data","Text","Lazy","Search"],ModuleName ["Data","Text","Private"],ModuleName ["Data","Text","Search"],ModuleName ["Data","Text","Unsafe"],ModuleName ["Data","Text","Unsafe","Base"],ModuleName ["Data","Text","UnsafeChar"],ModuleName ["Data","Text","UnsafeShift"],ModuleName ["Data","Text","Util"]], trusted = False, importDirs = ["/home/richard/.cabal/lib/text-0.11.2.3/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/text-0.11.2.3/ghc-7.4.2"], hsLibraries = ["HStext-0.11.2.3"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "array-0.4.0.0-4f6c2a594155b0b953c1cf0f54040f61",InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "bytestring-0.9.2.1-ac1c20630117630ba32abcac9cdbbce8",InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageId "ghc-prim-0.2.0.0-23f345e1ec26a64d5ebc768bd0b2a5d9",InstalledPackageId "integer-gmp-0.4.0.0-c15e185526893c3119f809251aac8c5b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/text-0.11.2.3/html/text.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/text-0.11.2.3/html"]}])]),(PackageName "time",fromList [(Version {versionBranch = [1,4], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "time-1.4-b8e1c3d423daa1e2c5470a82caf23b52", sourcePackageId = PackageIdentifier {pkgName = PackageName "time", pkgVersion = Version {versionBranch = [1,4], versionTags = []}}, license = BSD3, copyright = "", maintainer = "<ashley@semantic.org>", author = "Ashley Yakeley", stability = "stable", homepage = "http://semantic.org/TimeLib/", pkgUrl = "", synopsis = "A time library", description = "A time library", category = "System", exposed = True, exposedModules = [ModuleName ["Data","Time","Calendar"],ModuleName ["Data","Time","Calendar","MonthDay"],ModuleName ["Data","Time","Calendar","OrdinalDate"],ModuleName ["Data","Time","Calendar","WeekDate"],ModuleName ["Data","Time","Calendar","Julian"],ModuleName ["Data","Time","Calendar","Easter"],ModuleName ["Data","Time","Clock"],ModuleName ["Data","Time","Clock","POSIX"],ModuleName ["Data","Time","Clock","TAI"],ModuleName ["Data","Time","LocalTime"],ModuleName ["Data","Time","Format"],ModuleName ["Data","Time"]], hiddenModules = [ModuleName ["Data","Time","Calendar","Private"],ModuleName ["Data","Time","Calendar","Days"],ModuleName ["Data","Time","Calendar","Gregorian"],ModuleName ["Data","Time","Calendar","JulianYearDay"],ModuleName ["Data","Time","Clock","Scale"],ModuleName ["Data","Time","Clock","UTC"],ModuleName ["Data","Time","Clock","CTimeval"],ModuleName ["Data","Time","Clock","UTCDiff"],ModuleName ["Data","Time","LocalTime","TimeZone"],ModuleName ["Data","Time","LocalTime","TimeOfDay"],ModuleName ["Data","Time","LocalTime","LocalTime"],ModuleName ["Data","Time","Format","Parse"]], trusted = False, importDirs = ["/usr/lib/ghc/time-1.4"], libraryDirs = ["/usr/lib/ghc/time-1.4"], hsLibraries = ["HStime-1.4"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = ["/usr/lib/ghc/time-1.4/include"], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b",InstalledPackageId "deepseq-1.3.0.0-c8a9e8b538aecb7581533b9c1d19faed",InstalledPackageId "old-locale-1.0.0.4-b1d945ebea59a524cba400a524cb40aa"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/usr/lib/ghc-doc/haddock/time-1.4/time.haddock"], haddockHTMLs = ["/usr/share/doc/ghc-doc/html/libraries/time-1.4"]}])]),(PackageName "transformers",fromList [(Version {versionBranch = [0,3,0,0], versionTags = []},[InstalledPackageInfo {installedPackageId = InstalledPackageId "transformers-0.3.0.0-2889ebed7e61112cda7ded5e4c153bcf", sourcePackageId = PackageIdentifier {pkgName = PackageName "transformers", pkgVersion = Version {versionBranch = [0,3,0,0], versionTags = []}}, license = BSD3, copyright = "", maintainer = "Ross Paterson <ross@soi.city.ac.uk>", author = "Andy Gill, Ross Paterson", stability = "", homepage = "", pkgUrl = "", synopsis = "Concrete functor and monad transformers", description = "A portable library of functor and monad transformers, inspired by\nthe paper \\\"Functional Programming with Overloading and Higher-Order\nPolymorphism\\\", by Mark P Jones,\nin /Advanced School of Functional Programming/, 1995\n(<http://web.cecs.pdx.edu/~mpj/pubs/springschool.html>).\n\nThis package contains:\n\n* the monad transformer class (in \"Control.Monad.Trans.Class\")\n\n* concrete functor and monad transformers, each with associated\noperations and functions to lift operations associated with other\ntransformers.\n\nIt can be used on its own in portable Haskell code, or with the monad\nclasses in the @mtl@ or @monads-tf@ packages, which automatically\nlift operations introduced by monad transformers through other\ntransformers.", category = "Control", exposed = True, exposedModules = [ModuleName ["Control","Applicative","Backwards"],ModuleName ["Control","Applicative","Lift"],ModuleName ["Control","Monad","IO","Class"],ModuleName ["Control","Monad","Trans","Class"],ModuleName ["Control","Monad","Trans","Cont"],ModuleName ["Control","Monad","Trans","Error"],ModuleName ["Control","Monad","Trans","Identity"],ModuleName ["Control","Monad","Trans","List"],ModuleName ["Control","Monad","Trans","Maybe"],ModuleName ["Control","Monad","Trans","Reader"],ModuleName ["Control","Monad","Trans","RWS"],ModuleName ["Control","Monad","Trans","RWS","Lazy"],ModuleName ["Control","Monad","Trans","RWS","Strict"],ModuleName ["Control","Monad","Trans","State"],ModuleName ["Control","Monad","Trans","State","Lazy"],ModuleName ["Control","Monad","Trans","State","Strict"],ModuleName ["Control","Monad","Trans","Writer"],ModuleName ["Control","Monad","Trans","Writer","Lazy"],ModuleName ["Control","Monad","Trans","Writer","Strict"],ModuleName ["Data","Functor","Compose"],ModuleName ["Data","Functor","Constant"],ModuleName ["Data","Functor","Identity"],ModuleName ["Data","Functor","Product"],ModuleName ["Data","Functor","Reverse"]], hiddenModules = [], trusted = False, importDirs = ["/home/richard/.cabal/lib/transformers-0.3.0.0/ghc-7.4.2"], libraryDirs = ["/home/richard/.cabal/lib/transformers-0.3.0.0/ghc-7.4.2"], hsLibraries = ["HStransformers-0.3.0.0"], extraLibraries = [], extraGHCiLibraries = [], includeDirs = [], includes = [], depends = [InstalledPackageId "base-4.5.1.0-6909ea031307e047b8ba5b23968c534b"], hugsOptions = [], ccOptions = [], ldOptions = [], frameworkDirs = [], frameworks = [], haddockInterfaces = ["/home/richard/.cabal/share/doc/transformers-0.3.0.0/html/transformers.haddock"], haddockHTMLs = ["/home/richard/.cabal/share/doc/transformers-0.3.0.0/html"]}])])]), pkgDescrFile = Just "./combinatorial-problems.cabal", localPkgDescr = PackageDescription {package = PackageIdentifier {pkgName = PackageName "combinatorial-problems", pkgVersion = Version {versionBranch = [0,0,5], versionTags = []}}, license = GPL Nothing, licenseFile = "LICENSE", copyright = "Copyright (c) 2011 Richard Senington", maintainer = "sc06r2s@leeds.ac.uk", author = "Richard Senington", stability = "experimental", testedWith = [], homepage = "http://www.comp.leeds.ac.uk/sc06r2s/Projects/HaskellCombinatorialProblems", pkgUrl = "", bugReports = "", sourceRepos = [], synopsis = "A number of data structures to represent and allow the manipulation of standard combinatorial problems, used as test problems in computer science.", description = "In computer science there are a number of standard test problems that are used for testing algorithms,\nespecially those related to Artificial Intelligence and Operations Research. Online there are a number\nof repositories for collections of known interesting problems, for example the TSPLIB at\n<http://comopt.ifi.uni-heidelberg.de/software/TSPLIB95/> and the SATLIB at\n<http://www.satlib.org/>.\n\nThis library seeks to provide implementations of data structures to store these problems, along with\nfunctions for manipulating the problems and routines to load problem files from various sources.\n\nAt present it supports TSP\\/TSPLIB, SAT\\/SATLIB and TIM (format used by the International Timetabling Competition,\nwhich has been run twice at current date), however it is hoped that the loading routines\ncan be expanded and the range of problems expanded to cover problems like scheduling and more general timetabling.\nThe internal data structures make heavy use of the @Data.Map@ library and @Data.Array@. It is not currently\nusing unboxed values. The library does not use the @bytestring@ library for loading and saving data either,\nwhich will probably need to be changed later.", category = "Optimisation", customFieldsPD = [], buildDepends = [Dependency (PackageName "array") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2,0,0], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2,0,0], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,4,0,0], versionTags = []}))),Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [2,0], versionTags = []})) (LaterVersion (Version {versionBranch = [2,0], versionTags = []}))) (UnionVersionRanges (ThisVersion (Version {versionBranch = [5], versionTags = []})) (EarlierVersion (Version {versionBranch = [5], versionTags = []})))) (ThisVersion (Version {versionBranch = [4,5,1,0], versionTags = []}))),Dependency (PackageName "bytestring") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,9,1,10], versionTags = []})) (LaterVersion (Version {versionBranch = [0,9,1,10], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,9,2,1], versionTags = []}))),Dependency (PackageName "bytestring-lexing") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2,1], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,4,0], versionTags = []}))),Dependency (PackageName "containers") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2,0,1], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2,0,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,5,2,1], versionTags = []}))),Dependency (PackageName "parsec") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [3,1,1], versionTags = []})) (LaterVersion (Version {versionBranch = [3,1,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [3,1,3], versionTags = []}))),Dependency (PackageName "random") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,0,0,1], versionTags = []})) (LaterVersion (Version {versionBranch = [1,0,0,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [1,0,1,1], versionTags = []})))], specVersionRaw = Right (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,2], versionTags = []})) (LaterVersion (Version {versionBranch = [1,2], versionTags = []}))), buildType = Just Simple, library = Just (Library {exposedModules = [ModuleName ["FileFormat","SATLIB"],ModuleName ["FileFormat","TSPLIB"],ModuleName ["FileFormat","TIM"],ModuleName ["CombinatorialOptimisation","SAT"],ModuleName ["CombinatorialOptimisation","TSP"],ModuleName ["CombinatorialOptimisation","TSP","FixedPoint"],ModuleName ["CombinatorialOptimisation","TIM"]], libExposed = True, libBuildInfo = BuildInfo {buildable = True, buildTools = [], cppOptions = [], ccOptions = [], ldOptions = [], pkgconfigDepends = [], frameworks = [], cSources = [], hsSourceDirs = ["."], otherModules = [], defaultLanguage = Nothing, otherLanguages = [], defaultExtensions = [], otherExtensions = [], oldExtensions = [], extraLibs = [], extraLibDirs = [], includeDirs = [], includes = [], installIncludes = [], options = [], ghcProfOptions = [], ghcSharedOptions = [], customFieldsBI = [], targetBuildDepends = [Dependency (PackageName "array") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2,0,0], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2,0,0], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,4,0,0], versionTags = []}))),Dependency (PackageName "base") (IntersectVersionRanges (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [2,0], versionTags = []})) (LaterVersion (Version {versionBranch = [2,0], versionTags = []}))) (UnionVersionRanges (ThisVersion (Version {versionBranch = [5], versionTags = []})) (EarlierVersion (Version {versionBranch = [5], versionTags = []})))) (ThisVersion (Version {versionBranch = [4,5,1,0], versionTags = []}))),Dependency (PackageName "bytestring") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,9,1,10], versionTags = []})) (LaterVersion (Version {versionBranch = [0,9,1,10], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,9,2,1], versionTags = []}))),Dependency (PackageName "bytestring-lexing") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2,1], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,4,0], versionTags = []}))),Dependency (PackageName "containers") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [0,2,0,1], versionTags = []})) (LaterVersion (Version {versionBranch = [0,2,0,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [0,5,2,1], versionTags = []}))),Dependency (PackageName "parsec") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [3,1,1], versionTags = []})) (LaterVersion (Version {versionBranch = [3,1,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [3,1,3], versionTags = []}))),Dependency (PackageName "random") (IntersectVersionRanges (UnionVersionRanges (ThisVersion (Version {versionBranch = [1,0,0,1], versionTags = []})) (LaterVersion (Version {versionBranch = [1,0,0,1], versionTags = []}))) (ThisVersion (Version {versionBranch = [1,0,1,1], versionTags = []})))]}}), executables = [], testSuites = [], benchmarks = [], dataFiles = [], dataDir = "", extraSrcFiles = [], extraTmpFiles = []}, withPrograms = [("alex",ConfiguredProgram {programId = "alex", programVersion = Just (Version {versionBranch = [3,0,1], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/alex"}}),("ar",ConfiguredProgram {programId = "ar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ar"}}),("gcc",ConfiguredProgram {programId = "gcc", programVersion = Just (Version {versionBranch = [4,7], versionTags = []}), programDefaultArgs = ["-Wl,--hash-size=31","-Wl,--reduce-memory-overheads"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/gcc"}}),("ghc",ConfiguredProgram {programId = "ghc", programVersion = Just (Version {versionBranch = [7,4,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc"}}),("ghc-pkg",ConfiguredProgram {programId = "ghc-pkg", programVersion = Just (Version {versionBranch = [7,4,2], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ghc-pkg"}}),("haddock",ConfiguredProgram {programId = "haddock", programVersion = Just (Version {versionBranch = [2,11,0], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/haddock"}}),("happy",ConfiguredProgram {programId = "happy", programVersion = Just (Version {versionBranch = [1,18,9], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/happy"}}),("hpc",ConfiguredProgram {programId = "hpc", programVersion = Just (Version {versionBranch = [0,6], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/hpc"}}),("hsc2hs",ConfiguredProgram {programId = "hsc2hs", programVersion = Just (Version {versionBranch = [0,67], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/hsc2hs"}}),("ld",ConfiguredProgram {programId = "ld", programVersion = Nothing, programDefaultArgs = ["-x","--hash-size=31","--reduce-memory-overheads"], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ld"}}),("pkg-config",ConfiguredProgram {programId = "pkg-config", programVersion = Just (Version {versionBranch = [0,26], versionTags = []}), programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/pkg-config"}}),("ranlib",ConfiguredProgram {programId = "ranlib", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/ranlib"}}),("strip",ConfiguredProgram {programId = "strip", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/usr/bin/strip"}}),("tar",ConfiguredProgram {programId = "tar", programVersion = Nothing, programDefaultArgs = [], programOverrideArgs = [], programLocation = FoundOnSystem {locationPath = "/bin/tar"}})], withPackageDB = [GlobalPackageDB,UserPackageDB], withVanillaLib = True, withProfLib = False, withSharedLib = False, withDynExe = False, withProfExe = False, withOptimization = NormalOptimisation, withGHCiLib = True, splitObjs = False, stripExes = True, progPrefix = "", progSuffix = ""}
diff --git a/fl417.tsp b/fl417.tsp
new file mode 100644
--- /dev/null
+++ b/fl417.tsp
@@ -0,0 +1,424 @@
+NAME : fl417
+COMMENT : Drilling problem (Reinelt)
+TYPE : TSP
+DIMENSION : 417
+EDGE_WEIGHT_TYPE : EUC_2D
+NODE_COORD_SECTION
+1 1.02570e+03 1.97130e+03
+2 1.16167e+03 1.96539e+03
+3 1.19123e+03 1.95949e+03
+4 1.16759e+03 1.95949e+03
+5 1.09664e+03 1.95949e+03
+6 1.10256e+03 1.95358e+03
+7 1.09073e+03 1.95358e+03
+8 1.01979e+03 1.95358e+03
+9 1.23262e+03 1.94177e+03
+10 1.04344e+03 1.94177e+03
+11 1.23853e+03 1.93587e+03
+12 1.16759e+03 1.93587e+03
+13 1.13211e+03 1.93587e+03
+14 1.26809e+03 1.92996e+03
+15 1.24444e+03 1.92996e+03
+16 1.06708e+03 1.92996e+03
+17 1.17941e+03 1.92406e+03
+18 1.04935e+03 1.92406e+03
+19 1.03753e+03 1.92406e+03
+20 1.12620e+03 1.91815e+03
+21 1.09073e+03 1.91815e+03
+22 9.84319e+02 1.91815e+03
+23 1.32720e+03 1.90634e+03
+24 1.03161e+03 1.90634e+03
+25 9.96143e+02 1.90634e+03
+26 1.04935e+03 1.90044e+03
+27 1.18532e+03 1.89453e+03
+28 1.11438e+03 1.89453e+03
+29 1.31538e+03 1.88272e+03
+30 1.29173e+03 1.88272e+03
+31 1.07891e+03 1.88272e+03
+32 1.01388e+03 1.87682e+03
+33 1.73512e+03 1.74691e+03
+34 7.41934e+02 1.74691e+03
+35 1.72921e+03 1.74100e+03
+36 7.36022e+02 1.74100e+03
+37 1.52230e+03 1.72329e+03
+38 5.29108e+02 1.72329e+03
+39 1.18532e+03 1.64652e+03
+40 1.56959e+03 1.52252e+03
+41 5.76403e+02 1.52252e+03
+42 1.14985e+03 1.44575e+03
+43 6.17786e+02 1.44575e+03
+44 1.03161e+03 1.42213e+03
+45 1.10847e+03 1.41622e+03
+46 7.53758e+02 1.41622e+03
+47 1.03161e+03 1.41032e+03
+48 5.94138e+02 1.41032e+03
+49 7.59670e+02 1.39851e+03
+50 6.05962e+02 1.39851e+03
+51 7.53758e+02 1.27450e+03
+52 6.59169e+02 1.25088e+03
+53 1.26809e+03 1.24498e+03
+54 5.94138e+02 1.24498e+03
+55 6.11874e+02 1.22726e+03
+56 1.27991e+03 1.22136e+03
+57 6.59169e+02 1.15640e+03
+58 1.22670e+03 1.00287e+03
+59 1.14985e+03 9.96967e+02
+60 1.61097e+03 9.73347e+02
+61 1.03753e+03 8.02101e+02
+62 1.31538e+03 7.96196e+02
+63 1.11438e+03 7.96196e+02
+64 1.09073e+03 7.96196e+02
+65 1.27400e+03 7.90290e+02
+66 1.13211e+03 7.90290e+02
+67 1.10847e+03 7.90290e+02
+68 1.01388e+03 7.90290e+02
+69 1.26809e+03 7.84386e+02
+70 1.11438e+03 7.84386e+02
+71 1.03161e+03 7.84386e+02
+72 1.66418e+03 7.78481e+02
+73 1.23853e+03 7.78481e+02
+74 1.09664e+03 7.78481e+02
+75 1.04935e+03 7.78481e+02
+76 9.78407e+02 7.78481e+02
+77 1.23262e+03 7.72576e+02
+78 1.18532e+03 7.72576e+02
+79 1.07891e+03 7.72576e+02
+80 1.05526e+03 7.72576e+02
+81 1.01979e+03 7.72576e+02
+82 1.21488e+03 7.66670e+02
+83 1.19123e+03 7.66670e+02
+84 1.16759e+03 7.66670e+02
+85 1.08482e+03 7.66670e+02
+86 1.07300e+03 7.66670e+02
+87 1.23262e+03 7.60765e+02
+88 1.16167e+03 7.60765e+02
+89 1.26218e+03 7.54861e+02
+90 1.25035e+03 7.54861e+02
+91 1.17941e+03 7.54861e+02
+92 1.02570e+03 7.54861e+02
+93 1.26809e+03 7.48955e+02
+94 1.24444e+03 7.48955e+02
+95 1.17350e+03 7.48955e+02
+96 1.13211e+03 7.43050e+02
+97 1.12029e+03 7.43050e+02
+98 1.01979e+03 7.25335e+02
+99 9.96143e+02 7.25335e+02
+100 1.03753e+03 7.19430e+02
+101 1.00205e+03 7.19430e+02
+102 1.17350e+03 5.59994e+02
+103 1.61097e+03 5.48184e+02
+104 1.17350e+03 5.48184e+02
+105 1.22079e+03 5.36374e+02
+106 1.62871e+03 2.04806e+03
+107 1.62871e+03 2.03625e+03
+108 1.61689e+03 2.04806e+03
+109 1.61689e+03 2.03625e+03
+110 1.60506e+03 2.04806e+03
+111 1.60506e+03 2.03625e+03
+112 1.59324e+03 2.04806e+03
+113 1.59324e+03 2.03625e+03
+114 1.58141e+03 2.04806e+03
+115 1.58141e+03 2.03625e+03
+116 1.56959e+03 2.04806e+03
+117 1.56959e+03 2.03625e+03
+118 1.55777e+03 2.04806e+03
+119 1.55777e+03 2.03625e+03
+120 1.54594e+03 2.04806e+03
+121 1.54594e+03 2.03625e+03
+122 1.53412e+03 2.04806e+03
+123 1.53412e+03 2.03625e+03
+124 1.52230e+03 2.04806e+03
+125 1.52230e+03 2.03625e+03
+126 1.51047e+03 2.04806e+03
+127 1.51047e+03 2.03625e+03
+128 1.49865e+03 2.04806e+03
+129 1.49865e+03 2.03625e+03
+130 1.62280e+03 2.04216e+03
+131 1.62280e+03 2.03035e+03
+132 1.61097e+03 2.04216e+03
+133 1.61097e+03 2.03035e+03
+134 1.59915e+03 2.04216e+03
+135 1.59915e+03 2.03035e+03
+136 1.58733e+03 2.04216e+03
+137 1.58733e+03 2.03035e+03
+138 1.57550e+03 2.04216e+03
+139 1.57550e+03 2.03035e+03
+140 1.56368e+03 2.04216e+03
+141 1.56368e+03 2.03035e+03
+142 1.55185e+03 2.04216e+03
+143 1.55185e+03 2.03035e+03
+144 1.54003e+03 2.04216e+03
+145 1.54003e+03 2.03035e+03
+146 1.52821e+03 2.04216e+03
+147 1.52821e+03 2.03035e+03
+148 1.51638e+03 2.04216e+03
+149 1.51638e+03 2.03035e+03
+150 1.50456e+03 2.04216e+03
+151 1.50456e+03 2.03035e+03
+152 1.49274e+03 2.04216e+03
+153 1.49274e+03 2.03035e+03
+154 6.47346e+02 2.04806e+03
+155 6.47346e+02 2.03625e+03
+156 6.35522e+02 2.04806e+03
+157 6.35522e+02 2.03625e+03
+158 6.23699e+02 2.04806e+03
+159 6.23699e+02 2.03625e+03
+160 6.11875e+02 2.04806e+03
+161 6.11875e+02 2.03625e+03
+162 6.00051e+02 2.04806e+03
+163 6.00051e+02 2.03625e+03
+164 5.88228e+02 2.04806e+03
+165 5.88228e+02 2.03625e+03
+166 5.76404e+02 2.04806e+03
+167 5.76404e+02 2.03625e+03
+168 5.64581e+02 2.04806e+03
+169 5.64581e+02 2.03625e+03
+170 5.52757e+02 2.04806e+03
+171 5.52757e+02 2.03625e+03
+172 5.40933e+02 2.04806e+03
+173 5.40933e+02 2.03625e+03
+174 5.29109e+02 2.04806e+03
+175 5.29109e+02 2.03625e+03
+176 5.17286e+02 2.04806e+03
+177 5.17286e+02 2.03625e+03
+178 6.41434e+02 2.04216e+03
+179 6.41434e+02 2.03035e+03
+180 6.29611e+02 2.04216e+03
+181 6.29611e+02 2.03035e+03
+182 6.17787e+02 2.04216e+03
+183 6.17787e+02 2.03035e+03
+184 6.05963e+02 2.04216e+03
+185 6.05963e+02 2.03035e+03
+186 5.94140e+02 2.04216e+03
+187 5.94140e+02 2.03035e+03
+188 5.82316e+02 2.04216e+03
+189 5.82316e+02 2.03035e+03
+190 5.70492e+02 2.04216e+03
+191 5.70492e+02 2.03035e+03
+192 5.58669e+02 2.04216e+03
+193 5.58669e+02 2.03035e+03
+194 5.46845e+02 2.04216e+03
+195 5.46845e+02 2.03035e+03
+196 5.35022e+02 2.04216e+03
+197 5.35022e+02 2.03035e+03
+198 5.23198e+02 2.04216e+03
+199 5.23198e+02 2.03035e+03
+200 5.11374e+02 2.04216e+03
+201 5.11374e+02 2.03035e+03
+202 1.62871e+03 1.70262e+02
+203 1.62871e+03 1.58452e+02
+204 1.61689e+03 1.70262e+02
+205 1.61689e+03 1.58452e+02
+206 1.60506e+03 1.70262e+02
+207 1.60506e+03 1.58452e+02
+208 1.59324e+03 1.70262e+02
+209 1.59324e+03 1.58452e+02
+210 1.58141e+03 1.70262e+02
+211 1.58141e+03 1.58452e+02
+212 1.56959e+03 1.70262e+02
+213 1.56959e+03 1.58452e+02
+214 1.55777e+03 1.70262e+02
+215 1.55777e+03 1.58452e+02
+216 1.54594e+03 1.70262e+02
+217 1.54594e+03 1.58452e+02
+218 1.53412e+03 1.70262e+02
+219 1.53412e+03 1.58452e+02
+220 1.52230e+03 1.70262e+02
+221 1.52230e+03 1.58452e+02
+222 1.51047e+03 1.70262e+02
+223 1.51047e+03 1.58452e+02
+224 1.49865e+03 1.70262e+02
+225 1.49865e+03 1.58452e+02
+226 1.62280e+03 1.64357e+02
+227 1.62280e+03 1.52547e+02
+228 1.61097e+03 1.64357e+02
+229 1.61097e+03 1.52547e+02
+230 1.59915e+03 1.64357e+02
+231 1.59915e+03 1.52547e+02
+232 1.58733e+03 1.64357e+02
+233 1.58733e+03 1.52547e+02
+234 1.57550e+03 1.64357e+02
+235 1.57550e+03 1.52547e+02
+236 1.56368e+03 1.64357e+02
+237 1.56368e+03 1.52547e+02
+238 1.55185e+03 1.64357e+02
+239 1.55185e+03 1.52547e+02
+240 1.54003e+03 1.64357e+02
+241 1.54003e+03 1.52547e+02
+242 1.52821e+03 1.64357e+02
+243 1.52821e+03 1.52547e+02
+244 1.51638e+03 1.64357e+02
+245 1.51638e+03 1.52547e+02
+246 1.50456e+03 1.64357e+02
+247 1.50456e+03 1.52547e+02
+248 1.49274e+03 1.64357e+02
+249 1.49274e+03 1.52547e+02
+250 6.47346e+02 1.70262e+02
+251 6.47346e+02 1.58452e+02
+252 6.35522e+02 1.70262e+02
+253 6.35522e+02 1.58452e+02
+254 6.23699e+02 1.70262e+02
+255 6.23699e+02 1.58452e+02
+256 6.11875e+02 1.70262e+02
+257 6.11875e+02 1.58452e+02
+258 6.00051e+02 1.70262e+02
+259 6.00051e+02 1.58452e+02
+260 5.88228e+02 1.70262e+02
+261 5.88228e+02 1.58452e+02
+262 5.76404e+02 1.70262e+02
+263 5.76404e+02 1.58452e+02
+264 5.64581e+02 1.70262e+02
+265 5.64581e+02 1.58452e+02
+266 5.52757e+02 1.70262e+02
+267 5.52757e+02 1.58452e+02
+268 5.40933e+02 1.70262e+02
+269 5.40933e+02 1.58452e+02
+270 5.29109e+02 1.70262e+02
+271 5.29109e+02 1.58452e+02
+272 5.17286e+02 1.70262e+02
+273 5.17286e+02 1.58452e+02
+274 6.41434e+02 1.64357e+02
+275 6.41434e+02 1.52547e+02
+276 6.29611e+02 1.64357e+02
+277 6.29611e+02 1.52547e+02
+278 6.17787e+02 1.64357e+02
+279 6.17787e+02 1.52547e+02
+280 6.05963e+02 1.64357e+02
+281 6.05963e+02 1.52547e+02
+282 5.94140e+02 1.64357e+02
+283 5.94140e+02 1.52547e+02
+284 5.82316e+02 1.64357e+02
+285 5.82316e+02 1.52547e+02
+286 5.70492e+02 1.64357e+02
+287 5.70492e+02 1.52547e+02
+288 5.58669e+02 1.64357e+02
+289 5.58669e+02 1.52547e+02
+290 5.46845e+02 1.64357e+02
+291 5.46845e+02 1.52547e+02
+292 5.35022e+02 1.64357e+02
+293 5.35022e+02 1.52547e+02
+294 5.23198e+02 1.64357e+02
+295 5.23198e+02 1.52547e+02
+296 5.11374e+02 1.64357e+02
+297 5.11374e+02 1.52547e+02
+298 1.88883e+03 2.04806e+03
+299 1.87701e+03 2.04806e+03
+300 1.85336e+03 2.04806e+03
+301 1.84154e+03 2.04806e+03
+302 1.82971e+03 2.04806e+03
+303 1.78242e+03 2.04806e+03
+304 1.74695e+03 2.04806e+03
+305 1.72330e+03 2.04806e+03
+306 1.71147e+03 2.04806e+03
+307 1.67600e+03 2.04806e+03
+308 1.65236e+03 2.04806e+03
+309 9.07466e+02 2.04806e+03
+310 8.95642e+02 2.04806e+03
+311 8.71994e+02 2.04806e+03
+312 8.60171e+02 2.04806e+03
+313 8.48347e+02 2.04806e+03
+314 8.01053e+02 2.04806e+03
+315 7.65581e+02 2.04806e+03
+316 7.41934e+02 2.04806e+03
+317 7.30111e+02 2.04806e+03
+318 6.94640e+02 2.04806e+03
+319 6.70992e+02 2.04806e+03
+320 1.87109e+03 2.04216e+03
+321 1.80015e+03 2.04216e+03
+322 1.77651e+03 2.04216e+03
+323 1.75286e+03 2.04216e+03
+324 8.89730e+02 2.04216e+03
+325 8.18788e+02 2.04216e+03
+326 7.95141e+02 2.04216e+03
+327 7.71494e+02 2.04216e+03
+328 1.87701e+03 2.03625e+03
+329 1.85336e+03 2.03625e+03
+330 1.84154e+03 2.03625e+03
+331 1.74695e+03 2.03625e+03
+332 1.72330e+03 2.03625e+03
+333 1.69965e+03 2.03625e+03
+334 8.95642e+02 2.03625e+03
+335 8.71994e+02 2.03625e+03
+336 8.60171e+02 2.03625e+03
+337 7.65581e+02 2.03625e+03
+338 7.41934e+02 2.03625e+03
+339 7.18287e+02 2.03625e+03
+340 1.89474e+03 2.03035e+03
+341 1.87109e+03 2.03035e+03
+342 1.85927e+03 2.03035e+03
+343 1.82380e+03 2.03035e+03
+344 1.81198e+03 2.03035e+03
+345 1.80015e+03 2.03035e+03
+346 1.77651e+03 2.03035e+03
+347 1.76468e+03 2.03035e+03
+348 1.75286e+03 2.03035e+03
+349 9.13377e+02 2.03035e+03
+350 8.89730e+02 2.03035e+03
+351 8.77906e+02 2.03035e+03
+352 8.42435e+02 2.03035e+03
+353 8.30612e+02 2.03035e+03
+354 8.18788e+02 2.03035e+03
+355 7.95141e+02 2.03035e+03
+356 7.83317e+02 2.03035e+03
+357 7.71494e+02 2.03035e+03
+358 1.88883e+03 1.70261e+02
+359 1.87701e+03 1.70261e+02
+360 1.85336e+03 1.70261e+02
+361 1.84154e+03 1.70261e+02
+362 1.82971e+03 1.70261e+02
+363 1.78242e+03 1.70261e+02
+364 1.74695e+03 1.70261e+02
+365 1.72330e+03 1.70261e+02
+366 1.71147e+03 1.70261e+02
+367 1.67600e+03 1.70261e+02
+368 1.65236e+03 1.70261e+02
+369 9.07466e+02 1.70261e+02
+370 8.95642e+02 1.70261e+02
+371 8.71994e+02 1.70261e+02
+372 8.60171e+02 1.70261e+02
+373 8.48347e+02 1.70261e+02
+374 8.01053e+02 1.70261e+02
+375 7.65581e+02 1.70261e+02
+376 7.41934e+02 1.70261e+02
+377 7.30111e+02 1.70261e+02
+378 6.94640e+02 1.70261e+02
+379 6.70992e+02 1.70261e+02
+380 1.87109e+03 1.64357e+02
+381 1.80015e+03 1.64357e+02
+382 1.77651e+03 1.64357e+02
+383 1.75286e+03 1.64357e+02
+384 8.89730e+02 1.64357e+02
+385 8.18788e+02 1.64357e+02
+386 7.95141e+02 1.64357e+02
+387 7.71494e+02 1.64357e+02
+388 1.87701e+03 1.58451e+02
+389 1.85336e+03 1.58451e+02
+390 1.84154e+03 1.58451e+02
+391 1.74695e+03 1.58451e+02
+392 1.72330e+03 1.58451e+02
+393 1.69965e+03 1.58451e+02
+394 8.95642e+02 1.58451e+02
+395 8.71994e+02 1.58451e+02
+396 8.60171e+02 1.58451e+02
+397 7.65581e+02 1.58451e+02
+398 7.41934e+02 1.58451e+02
+399 7.18287e+02 1.58451e+02
+400 1.89474e+03 1.52546e+02
+401 1.87109e+03 1.52546e+02
+402 1.85927e+03 1.52546e+02
+403 1.82380e+03 1.52546e+02
+404 1.81198e+03 1.52546e+02
+405 1.80015e+03 1.52546e+02
+406 1.77651e+03 1.52546e+02
+407 1.76468e+03 1.52546e+02
+408 1.75286e+03 1.52546e+02
+409 9.13377e+02 1.52546e+02
+410 8.89730e+02 1.52546e+02
+411 8.77906e+02 1.52546e+02
+412 8.42435e+02 1.52546e+02
+413 8.30612e+02 1.52546e+02
+414 8.18788e+02 1.52546e+02
+415 7.95141e+02 1.52546e+02
+416 7.83317e+02 1.52546e+02
+417 7.71494e+02 1.52546e+02
+EOF
