import Control.Applicative ((<$>)) import Control.Monad (replicateM) import Data.ByteString.Char8 (ByteString) import qualified Data.ByteString.Char8 as B import Data.Vector (Vector, (!)) import qualified Data.Vector as V main :: IO () main = do n <- getl $ readi B.readInt solve <$> replicateM n (getl $ readi B.readInt) >>= mapM_ print solve :: [Int] -> [Int] solve = map (tv !) where tv = V.generate 1000001 f f n | n < 4 = 0 | n == 4 = 1 | otherwise = ((tv ! (n-1)) + (tv ! (n-2)) + (tv ! (n-3)) + (tv ! (n-4))) `mod` 17 getl :: (ByteString -> a) -> IO a getl f = f <$> B.getLine readi :: Integral a => (ByteString -> Maybe (a, ByteString)) -> ByteString -> a readi f s = let Just (n, _) = f s in n